Go基本语法
1.变量声明
Go语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。
- 变量声明一般使用var关键字
//声明单个变量
var identifier type
//声明多个变量
var identifier1, identifier2 type
//这种因式分解关键字的写法一般用于声明全局变量
var (
vname1 type1
vname2 type2
)
var关键字声明变量可以不指定属性,但一定要赋值,系统将会根据赋值自动推断变量类型
var identifier = value
- 使用 := 赋值操作符进行声明
//不需要指定具体类型,系统会根据赋值自动推断变量类型
identifier := value
注意:由于Go是一种强语言,对于已经声明类型的变量,我们不能够使用:=或者var再对变量进行声明,同时对于已经声明完成的变量需要再赋值时,要使用类型一样的值进行赋值
2.条件语句
在Go中,if关键字后不需要接小括号,但判断结束后必需要接大括号(C++中可以对只有单个语句的if语句省略大括号)
Go中没有三目运算符
if 7%2 == 0 {
fmt.Println("7 is even")
} else {
fmt.Println("7 is odd")
}
3.循环语句
- Go中只有for循环
- 与if语句一样不需要加小括号
//for关键字后不加任何条件为死循环
for {
fmt.Println("loop")
break
}
//一般for语句
for j := 7; j< 9; j++ {
fmt.Println(j)
}
//for循环形式的do while循环
i := 1
for i <= 3 {
fmt.Println(i)
i = i + 1
}
4.switch语句
- switch语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加break
- switch默认情况下case最后自带break语句,匹配成功后就不会执行其他的case。如果我们仍需执行下一个case,可以使用fallthrough关键字,不管后面的case表达式结果是否为true,所有case都会强制执行
switch {
case false:
fmt.Println("1、case 条件语句为 false")
fallthrough
case true:
fmt.Println("2、case 条件语句为 true")
fallthrough
case false:
fmt.Println("3、case 条件语句为 false")
fallthrough
case true:
fmt.Println("4、case 条件语句为 true")
case false:
fmt.Println("5、case 条件语句为 false")
fallthrough
default:
fmt.Println("6、默认 case")
}
//执行结果:
//2、case 条件语句为 true
//3、case 条件语句为 false
//4、case 条件语句为 true
5.数组
数组声明:
//声明一个大小为5的int数组,在没有初始化的条件下会按照默认初始化,对于整数类型,初始值为0
var numbers1 [5]int
//使用列表进行初始化数组元素
var numbers2 = [5]int{1, 2, 3, 4, 5}
//使用 := 关键字声明和初始化数组
numbers3 := [5]int{1, 2, 3, 4, 5}
- 注意: 在Go语言中,数组的大小是类型的一部分,因此不同大小的数组是不兼容的,也就是说 [5]int 和 [10]int 是不同的类型。
- 如果数组长度不确定,可以使用 ... 代替数组的长度,编译器会根据元素个数自行推断数组的长度
//两种不同的写法
var balance1 = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
balance2 := [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
- 还可以指定下标来初始化
//将索引为 1 和 3 的元素初始化
balance := [5]float32{1:2.0,3:7.0}