这是 Go 零基础的第二篇,主要是说说 Go 的命名规范、变量和常量。
命名规范
Go 语言中,任何标识符(变量,常量,函数,自定义类型等)都应该满足以下规律:
- 连续的字符或数字组成。
- 以字符或下划线开头。
- 不能和 Go 关键字冲突。
关键字
Go 语言总共有25个关键字。如下:
break default func interface selectcase defer go map structchan else goto package switchconst fallthrough if range typecontinue for import return var复制代码
那么根据以上几点我们来看看哪些命名是合法的
foo #合法foo1 #合法_foo #合法变量 #合法 但不建议使用中文命名1foo #不合法1 #不合法type #不合法a+b #不合法复制代码
变量
在 Go 语言中,声明变量的一般形式是使用 var 关键字:var identifier type
。例如:
var a int var b boolvar str string复制代码
我们也可以这样声明:
var ( a int b bool str string)复制代码
这种因式分解关键字的写法一般用于声明全局变量。
当一个变量被声明之后,系统自动赋予它该类型的零值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil。记住,所有的内存在 Go 中都是经过初始化的。
当然,声明与赋值(初始化)语句也可以组合起来。例如:
var a int = 15var i = 5var b bool = falsevar str string = "Go says hello to the world!"var ( a = 15 b = false str = "Go says hello to the world!" numShips = 50 city string)复制代码
此时,我们可以省略变量类型(type),因为 Go 编译器可以根据变量的值来自动推断其类型。
简短声明方式
变量在声明的时候如果有初始值,我们可以使用 := 的简短声明方式:
a := 1 // 声明 a 为 1 的整数复制代码
这种方式只能在函数里面使用,用于全局变量声明会报错。
常量
常量用于存储不会改变的数据。它的定义方式与变量类似。常量使用const
关键字定义:const identifier [type] = value
。常量定义满足如下规则:
- 声明时必须赋值。
- 存储在常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
- 不能使用 := 声明。
例如:
const a = 64 const ( b = 4 c = 0.1)const Monday, Tuesday, Wednesday, Thursday, Friday, Saturday = 1, 2, 3, 4, 5, 6const ( Monday, Tuesday, Wednesday = 1, 2, 3 Thursday, Friday, Saturday = 4, 5, 6)复制代码
后记
本人只是 Go 语言初学者,文中可能有纰漏,欢迎大家评论区交流。