又到了 Go+ weekly release 时间。上周因为太忙没有整理 v0.7.7 的详细说明,今天一并来说说。
最近的 release 基本上还是优先补全 Go 的基本能力为主。这两周最大的更新是支持了结构体(struct)和自定义类型(user-defined type)。
可能有些人会混淆 struct 和 user-defined type 的区别。这也不奇怪,在不少语言中用户自定义类型主要就是靠 struct 或 class 来表达的。但是在 Go 里面,这两者有更清晰的边界。
在 Go 中,结构体(struct)是复合类型。例如:
可以看出,这里 struct 类型是内置的复合类型,和数组(array)、切片(slice)这些复合类型并无本质区别。
那么,什么是自定义类型(user-defined type)?
在内置类型,可以是原子类型(int、string 等等)或复合类型(struct、slice、map 等等),其基础上添加方法(methods)。例如:
其他功能增强方面,一个是支持了 || 和 && 操作符的短路优化(short-circuit optimization);另一个是 Go+ REPL(https://repl.goplus.org)加强了易用性,不用主动 println 来显示表达是的计算结果了。
以下是完整的 Release Notes: