• 我加了下备份链接。

  • 嗯,你说的对,我把 defer 删了。

  • 我一般直接用命名返回值,然后在函数内部通过指针去设置值。

    package main
    import(
        "fmt"
    )
    type Student struct{
        Name string 
        Age int
    }
    
    func getItem()(stu Student){
        var s=&stu 
        s.Name="jemy"
        s.Age=20
        return 
    }
    
    func main(){
        s:=getItem()
        fmt.Println(s.Name,s.Age)
    }
    
  • 很好~

  • 不错,点赞。

  • 需要提供你的 go sdk 的版本。理论上 for 死循环后,要看 go routine 是怎么调度的。

  • Go 里面默认都是值传递,只有你需要的时候用引用传递。这样很好区分,没有太多潜规则。

  • 国内那些公司在使用Go at 2019年04月24日

    做了一个 devops 的平台,4w 多行代码(包括测试用例)

  • 这个一般可以在中间加一层过滤,就是 Accounts 那个对象不要 ORM 和 JSON 的共享。一般定义 AccountInput 表示输入, AccountOutput 表示输出,AccountPatch 表示更新,然后映射到 ORM 的那个对象定义为 Account。供参考。

  • golang 和 面向对象 at 2018年09月20日

    大部分人会的面向对象语言可能就是 Java。所以这个问题简化一下,就是 Go 和 Java 有什么区别? 从语言层面,这两个语言区别不大。Java 里面面向对象的特性在 Go 里面也有,比如接口实现什么的。至于继承,这个可以通过 Go 里面的对象组合来实现,所以也不算什么大的区别。 从使用角度看,Go 语言上手的速度比较快,语法简单,控制结构少,关键字也很少。另外,Go 在很多的时候,写 HTTP 的服务非常快,这个即使是在 Java 拥有大量行业著名框架的情况下,也是如此。 比如,我之前干过最多的就是抓文件。这个用 Go Routine 配合 http.Get 方法几分钟就把代码写了。这个要是 Java 就不是那么容易了。 Go 另外一个极好的特性就是编译后就是一个二进制文件,虽然目前 Java 的程序也可以,比如 Spring Boot,但是在容器化的情况下,我不需要 JDK 啊,一个镜像塞一个 JDK,立马就大了。 最后,每个语言有各自约定俗成的使用场景,比如大数据,比如容器等等,选择约定的语言就好了。区别不在语言层面,区别在核心技术层面。