基础语法
行分隔符
在Go程序中,一般一行就是一个语句,不像Java等可以在一行写多个语句一样,而且最后也不需要用";"来结尾。
例如,下列写法就是一个Go语句
代码语言:javascript复制fmt.Println("HelloWorld")
注释
注释也分为单行注释和多行注释,单行注释以双斜线"//"开头,例如//单行注释
;
多行注释通常以"/*"开头,以"*/"结尾,例如:
代码语言:javascript复制/*
多行注释
多行注释
多行注释
*/
标识符
标识符通常用来对变量、类型等程序实体进行命名。一个标识符实际上就是一个或者多个字母、数字、下划线组成的字符串序列,并且要求第一个字符不能是数字或者GO语言的关键字。
变量
Go语言中的变量可以分为以下几类:
数值型变量:包括整型(int、int8、int16、int32、int64)、浮点型(float32、float64)和复数型(complex64、complex128)。
字符串型变量:用于存储字符串类型的数据,使用 string 类型。
布尔型变量:用于存储布尔类型的数据,只有 true 和 false 两个值,使用 bool 类型。
指针型变量:用于存储内存地址,使用 *data_type 类型。
结构体变量:用于存储多个变量的组合,使用 struct 类型。
接口型变量:用于存储实现了某个接口的类型,使用 interface 类型。
函数变量:用于存储函数,使用 func 类型。
声明
Go语言是一种静态强类型语言,所以变量有明确的类型。变量的声明一般形式是使用var关键字,形式如下:
代码语言:javascript复制var age int
其中,var是变量声明的关键字,age是变量名,int是变量的类型。
当一个变量被声明后,如果不对其进行赋值,则系统会自动赋予它该类型的0值或者空值。例如int类型默认为0、float类型默认为0.0、bool类型默认为false,string类型默认为空字符串,指针类型默认为nil。
(1)标准声明
变量的标准声明格式为
代码语言:javascript复制var 变量名 变量类型
变量声明以关键字var开头,中间为变量名,最后为变量类型,无需分号结尾
(2)批量声明
批量声明是一个更加高效的变量声明方法,即使用关键字var和括号将一组变量放在一起。格式如下:
代码语言:javascript复制var {
name string
age int
gender string
}
(3)简短声明
除了var关键字以外,还可以使用简短的变量定义和初始化。格式如下:
代码语言:javascript复制变量名 := 表达式
当使用简短声明时有三点需要注意:
1)只能用来定义变量
2)不能提供数据类型
3)只能在函数体内部使用,不能用来定义全局变量
赋值
(1)给一个变量赋值
代码语言:javascript复制var name string = "zxm"
这里需要说明,变量类型string一般可以省略不写,因为系统会自动进行判断变量类型
(2)给多个变量赋值
代码语言:javascript复制var {
name string = "zxm"
age int = 18
gender string = "男"
}
这里的变量类型也可以省略。
作用域
(1)局部变量
表示在函数体内声明的变量称为局部变量,它的作用域只在函数体内,它的参数的返回值的变量也是局部变量。
(2)全局变量
表示在函数体外声明的变量称为全局变量,它的作用域可以在整个包内使用,也可以在任何一个函数中使用。
常量
Go语言中的常量可以分为以下几类:
数值型常量:与数值型变量类似,包括整型、浮点型和复数型常量。
字符串型常量:与字符串型变量类似,用于存储字符串类型的数据。
布尔型常量:与布尔型变量类似,用于存储布尔类型的数据。
iota 常量:特殊的常量类型,用于枚举,从 0 开始自增。
声明
常量是一种特殊类型的变量,其值在定义后不能被修改。在 Golang 中,常量可以使用 const 关键字进行定义
(1)标准声明
常量的标准声明格式为
代码语言:javascript复制const 常量名 = 常量值
(2)批量声明
代码语言:javascript复制const {
a = 3.14
b
c
}
这里将常量a赋值3.14,b和c没有进行赋值,就会自动按照上面语句" a = 3.14"的值进行赋值,所以b和c也等于3.14
iota
常量声明可以使用常量生成器iota进行初始化。iota用于生成一组以相似规则初始化的常量,但是不需要每行都写一遍初始化表达式。在一个const声明语句中,在第一个声明的常量所在的行,iota会被置为0,然后每有一个常量声明的行iota的值就加1。