一、Golang常量
Golang中定义常量的方法与定义变量的一样,只是关键字由var
切换为了const
;
这与js的es6标准中定义常量类似,都是使用const
关键字,例如:
package main // 声明 main 包,表明当前是一个可执行程序 import "fmt" func main(){ // main函数,是程序执行的入口 const a, b= 3, 4 fmt.Println(a, b) }
输出结果
3 4
需要说明的是,Golang中的局部变量定义后未使用会报错,但常量不会报错!
另外,如果我们一次性定义多个常量,但存在未赋值的常量,那么该常量的值会使用上一行常量定义的值:
package main // 声明 main 包,表明当前是一个可执行程序 import "fmt" func main() { // main函数,是程序执行的入口 const ( a1 = 1 a2 ) fmt.Println(a1, a2) }
输出结果
1 1
二、iota—常量计数器
Golang中还有一个名为iota的特殊常量,它用于计数常量(const
)出现的次数,走0开始计算,例如:
package main // 声明 main 包,表明当前是一个可执行程序 import "fmt" func main() { // main函数,是程序执行的入口 const ( a1 = 1 // a1 = 0 iota=0(iota初始为0) a2 = 2 // a2 = 1 iota=1 a3 = iota //a3=iota;iota=2 a4 = "hello" //iota=3 a5 = iota //iota=4 a6 ) fmt.Println(a3, a4, a5, a6) }
输出结果
2 hello 4 5
三、Golang条件语句
1. if 语句
Golang中的if语句不需要带括号:
package main import "fmt" func main() { //定义变量a=1 a := 1 fmt.Printf("a 的值为:%d\n", a) if a < 2 { //如果条件为 true 则执行以下语句 fmt.Printf("a 小于 2\n") } }
输出结果
a 的值为:1 a 小于 2
2. if … else 语句
需要注意的是,Golang中的else
需要与上一个右括号}
在同一行,否则会报错:
package main import "fmt" func main() { //定义变量a=3 a := 3 fmt.Printf("a 的值为:%d\n", a) if a < 2 { fmt.Printf("a 小于 2\n") } else { //else需与}在同一行 fmt.Printf("a 大于 2\n") } }
3. if 语句嵌套
package main import "fmt" func main() { //定义变量a=4 a := 4 fmt.Printf("a 的值为:%d\n", a) if a < 2 { fmt.Printf("a 小于 2\n") } else {//else需与}在同一行 if a == 3 { fmt.Printf("a 等于 3\n") } else {//else需与}在同一行 fmt.Printf("a 不等于 3\n") } } }
4. switch 语句
1)语法
注意:Golang的switch 默认情况下 case 最后自带 break 语句,无需我们手动写break;
package main import "fmt" func main() { //定义变量a=4 a := 5 fmt.Printf("a 的值为:%d\n", a) switch a { case 1: fmt.Printf("a 等于 1\n") case 2: fmt.Printf("a 等于 2\n") case 3,4: fmt.Printf("a 等于 3或者4\n") //可以多条件判断 default: fmt.Printf("a 不等于1,2,3 4,a的值为:%d\n", a) } }
2)fallthrough
使用 fallthrough 会强制执行后面一条的 case 语句,哪怕它不满足case(判断为true)条件:
package main import "fmt" func main() { //定义变量a=4 a := 1 fmt.Printf("a 的值为:%d\n", a) switch a { case 1: fmt.Printf("a 等于 1\n") fallthrough case 2: //由于上一条使用了fallthrough,所以我也会被执行 fmt.Printf("a 等于 2\n") case 3,4: fmt.Printf("a 等于 3或者4\n") //可以多条件判断 default: fmt.Printf("a 不等于1,2,3 4,a的值为:%d\n", a) } }
输出结果
a 的值为:1 a 等于 1 a 等于 2
5. select 语句
待补充