摘要:
有些时候,零值并非最好的选择,我们有必要为变量赋予适当的初值以保证其后续以正确的状态参与业务流程计算,尤其是Go语言中的一些复合类型的变量。Go提供了复合字面值(composite literal)语法可以作为复合类型变量的初值构造器。 Go语言中的复合类型包括结构体、数组/切片和map。 Go提供 阅读全文
摘要:
11.1 Go类型的零值 Go语言规范中关于变量默认值的描述: 当通过声明或调用new为变量分配存储空间,或者通过复合文字字面量或调用make创建新值,且不提供显式初始化时,Go会为变量或值提供默认值。 Go规范定义的内置原生类型的默认值(零值): 所有整型类型:0 浮点类型:0.0 布尔类型:fa 阅读全文
摘要:
Go的const语法提供了隐式重复前一个非空表达式的机制 const ( Apple, Banan = 11, 22 Straberry, Grape Pear, Watermelon ) // 等价于 const ( Apple, Banan = 11, 22 Straberry, Grape = 阅读全文
摘要:
9.1 Go常量溯源 绝大多数情况下,Go常量在声明时并不显式指定类型,也就是说使用的是无类型常量(untyped constant)。 9.2 有类型常量带来的烦恼 如果有类型常量与变量的类型不同,那么混合运算的求值操作会报错: type myInt int const n myInt = 13 阅读全文
摘要:
Go语言常见的变量声明形式 var a int32 var s string = "hello" var i = 13 n := 17 var ( crlf = []byte("\r\n") colonSpace = []byte(": ") ) 8.1 包级变量的声明形式 1.声明并同时显式初始化 阅读全文