这是我参与「第五届青训营」笔记创作活动的第4天
语言常量
在go中,变量的声明通常采用var,而对于常量则使用的是const。
常量中的数据类型只有3种类型,bool类型、数字型和字符串类型。
因此,如果需要定义一个常量,最简单的情况可以使用如下的格式
const a [type]=b
a是常量名,b是常量a的值,在常量的声明中,必须包含赋值。而type可以省略,因为常量必须要声明赋值,而编译器可以根据赋值来推断type。
和变量的声明一样,多个常量的声明也可以简写为
const a,b,c=d,e,f
此时的a、b、c并不需要是同一类型的常量
const a,b,c type=d,e,f
此时的a、b、c需要是同一类型的常量
或者
const (
Unknown = 0
Female = 1
Male = 2
)
常量的定义可以在main函数内也可以在外
如果用函数来给常量赋值, 此时使用的函数必须是内置函数
iota
iota,特殊常量,可以认为是一个可以被编译器修改的常量。
iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。
iota 可以被用作枚举值:
const (
a = iota
b = iota
c = iota
)
第一个 iota 等于 0,每当 iota 在新的一行被使用时,它的值都会自动加 1;所以 a=0, b=1, c=2 可以简写为如下形式:
const (
a = iota
b
c
)
运算符
Go 语言内置的运算符有:
算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、其他运算符(和c++一样)
条件语句
if、if-else、switch、select(go中不支持三目运算符)
if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ }
循环语句
go中的循环只有for一种形式,for循环可以嵌套,控制循环有break、continue、goto
for循环有三种形式: 1、类比c++的for(变量初始值;控制条件;变量改变){},此时的括号可以省略
for init; condition; post { }
2、类比c++的while(),同样括号可以省略。
for condition { }
3、类比c++的for(;;)
for { }
for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。
for key, value := range oldMap {
newMap[key] = value
}
for key := range oldMap
for _, value := range oldMap