回复了 dongsong1117 创建的主题: JetBrains 推出了 Golang IDE - Gogland
哈哈哈,Jetbrains 还给我发了邮件:
Simbory
做我自己
回复了 dongsong1117 创建的主题: JetBrains 推出了 Golang IDE - Gogland
哈哈哈,Jetbrains 还给我发了邮件:
回复了 ssqq 创建的主题: 16进制字符串转换成数字
strconv.ParseInt(s string, base int, bitSize int)
第二个参数base设置为0时,该函数会自动识别数字格式进行转换。以下是go语言源代码里面的注释:
If base == 0, the base is implied by the string's prefix: base 16 for "0x", base 8 for "0", and base 10 otherwise.
翻译一下:如果base为0,base的值会根据字符串s起始自动进行判断:如果字符串以0x开始,base=16;如果字符串以0开始base=8;以其他字符串开始base=10
回复了 uncleyang 创建的主题: 继承父类后,覆盖父类中的方法(父类调用子类方法)
只能是子结构体调用父结构体的方法,比如:
package main
type Animal struct {
}
func (a *Animal) Eat() {
println("Animal eat")
}
type Cat struct {
Animal
}
func (c *Cat) Eat() {
println("Cat eat")
}
func main() {
cat := Cat{}
cat.Eat()
cat.Animal.Eat()
}
输出结果为:
Cat eat
Animal eat
如果你要反过来了的话建议采用interface,将方法抽象出来。比如上面的代码可改为:
package main
type Eatable interface {
Eat()
}
type Animal struct {
}
func (a *Animal) Eat() {
println("Animal eat")
}
type Cat struct {
Animal
}
func (c *Cat) Eat() {
println("Cat eat")
}
func main() {
var eatable Eatable
eatable = &Animal{}
eatable.Eat()
eatable = &Cat{}
eatable.Eat()
}
输出结果为:
Animal eat
Cat eat
回复了 fighter 创建的主题: var wg sync.WaitGroup wg.Add(1) wg为什么不需要初始化
struct是值类型,而WaitGroup明显是一个struct,你的这一句话var wg sync.WaitGroup
就相当于var num int64
。声明变量wg
的时候就已经初始化并分配内存了。
如果你这样声明var wg *sync.WaitGroup
就还需要加一句wg = &sync.WaitGroup{}
回复了 helloworld 创建的主题: go怎样处理父子关系类型数据 向各位大神求解
用map[string]interface{}自己手动拼接json格式
回复了 aaa 创建的主题: reflect 效率很差吗, 用作MVC如何?
看看https://github.com/Simbory/wemvc 里面就是用了反射,性能还不错
回复了 joeonly 创建的主题: 工厂方法该返回指针还是普通值,看了下面你可能就有自己的主意了
一般都是定义一个book的接口Book,然后在NewBook这个函数返回类型是这个接口,而不是指针更不是struct。看下面一段代码:
package main
type Book interface {
SetName(string) Book
GetName() string
}
type book struct {
name string
}
func (this *book) GetName() string {
return this.name
}
func (this *book) SetName(name string) Book {
this.name = name
return this
}
func NewBook(name string) Book {
return &book{name}
}
func main() {
println(book{"apple"}.name)
println(NewBook("apple").GetName())
x := NewBook("apple")
x.SetName("new apple")
println(x.GetName())
println(NewBook("apple").SetName("ibm").GetName())
}
回复了 dxhdxh2k 创建的主题: 推荐一个比gin更快的webframework---iris
试一下route框架https://github.com/Simbory/weroute
回复了 shuaixinga 创建的主题: 求推荐GO框架,不知道该研究哪个,最重要的是代码质量高,且碎片化轻量级.
@nuokesasi 文档正在整理中
回复了 shuaixinga 创建的主题: 求推荐GO框架,不知道该研究哪个,最重要的是代码质量高,且碎片化轻量级.
推荐 wemvc:
https://github.com/Simbory/wemvc
有帮助开发的工具wetool:
回复了 ssqq 创建的主题: go 不支持类型别名
@ssqq 不要用面向对象的类的思维来理解golang的type
你可以试一试这段代码
package main
// Estr the alias of the type string
type Estr string
func f(s string) {
println(s)
}
func main() {
var s Estr = Estr("hello")
f(string(s))
}
回复了 q464610036 创建的主题: 关于结构体复制问题
将A struct 序列化成json 然后再将json反序列化成B struct
回复了 yg7001 创建的主题: 正在选择犹豫中,请大家推荐一个golang的web框架
推荐 github.com/Simbory/wemvc
回复了 chenliang9908 创建的主题: 兄弟们,有golang开发的好的CMS推荐没有,想用来学习和二次开发?
推荐 Qor:
https://github.com/qor/qor
回复了 jimmykuu 创建的主题: Go1.7beta1 发布了
Nice
回复了 abanger 创建的主题: liteidex29.windows-qt4.zip 360报有病毒“HEUR/QVM20.1.Malware.Gen”
赛门铁克也是报毒,应该是有毒
回复了 Simbory 创建的主题: 还在寻找Go语言IDE的同志请注意了
30楼的兄弟说得很好,我基本上也是这样弄的
回复了 Simbory 创建的主题: 还在寻找Go语言IDE的同志请注意了
go1.6 有个坑,Windows下delve 调试器调试的时候会报错,还得用1.5编译好的delve二进制文件
回复了 sneermorn 创建的主题: 想问一下beego路由树的实现
这是我自己练手,写着玩的一个MVC框架
https://github.com/Simbory/wemvc
里面有我自己写的一个路由树的实现,希望能对你有帮助。
https://github.com/Simbory/wemvc/blob/Release01/route.go