go基础语法(三)| 青训营笔记

62 阅读2分钟

这是我参与「第五届青训营」笔记创作活动的第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