如果不存在指针类型,定义变量时不就可以吧类型放在名称前面了吗?刚接触Go,正在凌乱中。
大部分 go 方法没有 err 返回, 只有一些很容易出错的函数才定义了双值返回. 而这些错误可以不处理, 也可以处理, 把选择权交给了程序员. 这种情况下, 其实代码是简化了. 例如测试一个 Map 是否存在一个值, Java 通常用单独的函数来检查, 但 go 把这个检查函数和获取值的函数合并在了一起: value, is_exists := Map["key"]. 总之, 双值返回大部分是简化了编程, 而不是让代码更复杂.
#6
更多评论
指针类型用于传递地址, 而不是传递值, 因为 golang 的函数, 所有的参数都是传递一个复制的值. 如果值的体积过大, 那么就会严重降低效率, 而传递一个地址, 就会大大提高效率.
另外传递指针也能让 go 函数实现对变量值的修改.
关于类型放在变量的后面, 一方面可以合并同类型变量, 另外一方面也能省略变量, 在 := 环境中自动推导变量类型, 总之, 放在后面, 可以让类型在很多情况下可以省略, 而放在前面的话, 就不能省略了.
#2