2.1 命名规范
任何一门语言都要对文件、包、函数、类型、变量和常量等进行命名,方便记忆和使用。Go语言也不例外,对包、函数、类型、变量和常量名等所有的命名都遵循简单的命名规则:一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线。
Go语言是区分大小字母写的,因此myName和MyName是两个不同的标识符,而且标识符的首字母大小写会影响到对外的可见性。一般来说,标识符首字母大写的对外部是可见的,可以在包外直接进行访问;标识符首字母小写的对外部是不可见的,不能在包外直接进行访问。
另外,为了防止冲突,Go语言内置的关键字不能用于自定义标识符,只能在特定语法结构中使用。Go语言内置的关键字如下所示。
此外,还有大约30多个预定义的名字,比如string和int32等,主要对应内建的常量、类型和函数。
· 内建常量:true、false、iota和nil。
· 内建类型:int、int8、int16、int32、int64、uint、uint8、uint16、uint32、uint64、uintptr、float32、float64、complex128、complex64、bool、byte、rune、string和error。
· 内建函数:close、len、cap、new、make、append、copy、delete、complex、real、imag、panic、recover、print和println。
在Go语言中,代码规范有一部分是编译器强制检查的,如果不符合相关的语法规范(比如import未使用的包或者声明未使用的变量),在编译器对代码进行语法检查的时候会报错。Go语言编码规范最重要的就是要保持风格一致。关于Go编程规范,可以借鉴Uber Go语言编码规范(The Uber Go Style Guide)。
良好的编程规范可以避免语言陷阱,同时有利于团队协作和项目的代码维护。