Golang学习之路(三):Golang的常量和条件语句

x33g5p2x  于2021-11-19 转载在 Go  
字(2.1k)|赞(0)|评价(0)|浏览(658)

一、Golang常量

Golang中定义常量的方法与定义变量的一样,只是关键字由var切换为了const
这与js的es6标准中定义常量类似,都是使用const关键字,例如:

  1. package main // 声明 main 包,表明当前是一个可执行程序
  2. import "fmt"
  3. func main(){ // main函数,是程序执行的入口
  4. const a, b= 3, 4
  5. fmt.Println(a, b)
  6. }

输出结果

  1. 3 4

需要说明的是,Golang中的局部变量定义后未使用会报错,但常量不会报错!

另外,如果我们一次性定义多个常量,但存在未赋值的常量,那么该常量的值会使用上一行常量定义的值:

  1. package main // 声明 main 包,表明当前是一个可执行程序
  2. import "fmt"
  3. func main() { // main函数,是程序执行的入口
  4. const (
  5. a1 = 1
  6. a2
  7. )
  8. fmt.Println(a1, a2)
  9. }

输出结果

二、iota—常量计数器

Golang中还有一个名为iota的特殊常量,它用于计数常量(const)出现的次数,走0开始计算,例如:

  1. package main // 声明 main 包,表明当前是一个可执行程序
  2. import "fmt"
  3. func main() { // main函数,是程序执行的入口
  4. const (
  5. a1 = 1 // a1 = 0 iota=0(iota初始为0)
  6. a2 = 2 // a2 = 1 iota=1
  7. a3 = iota //a3=iota;iota=2
  8. a4 = "hello" //iota=3
  9. a5 = iota //iota=4
  10. a6
  11. )
  12. fmt.Println(a3, a4, a5, a6)
  13. }

输出结果

  1. 2 hello 4 5

三、Golang条件语句

1. if 语句

Golang中的if语句不需要带括号:

  1. package main
  2. import "fmt"
  3. func main() {
  4. //定义变量a=1
  5. a := 1
  6. fmt.Printf("a 的值为:%d\n", a)
  7. if a < 2 {
  8. //如果条件为 true 则执行以下语句
  9. fmt.Printf("a 小于 2\n")
  10. }
  11. }

输出结果

  1. a 的值为:1
  2. a 小于 2

2. if … else 语句

需要注意的是,Golang中的else需要与上一个右括号}在同一行,否则会报错:

  1. package main
  2. import "fmt"
  3. func main() {
  4. //定义变量a=3
  5. a := 3
  6. fmt.Printf("a 的值为:%d\n", a)
  7. if a < 2 {
  8. fmt.Printf("a 小于 2\n")
  9. } else { //else需与}在同一行
  10. fmt.Printf("a 大于 2\n")
  11. }
  12. }

3. if 语句嵌套

  1. package main
  2. import "fmt"
  3. func main() {
  4. //定义变量a=4
  5. a := 4
  6. fmt.Printf("a 的值为:%d\n", a)
  7. if a < 2 {
  8. fmt.Printf("a 小于 2\n")
  9. } else {//else需与}在同一行
  10. if a == 3 {
  11. fmt.Printf("a 等于 3\n")
  12. } else {//else需与}在同一行
  13. fmt.Printf("a 不等于 3\n")
  14. }
  15. }
  16. }

4. switch 语句

1)语法

注意:Golang的switch 默认情况下 case 最后自带 break 语句,无需我们手动写break;

  1. package main
  2. import "fmt"
  3. func main() {
  4. //定义变量a=4
  5. a := 5
  6. fmt.Printf("a 的值为:%d\n", a)
  7. switch a {
  8. case 1:
  9. fmt.Printf("a 等于 1\n")
  10. case 2:
  11. fmt.Printf("a 等于 2\n")
  12. case 3,4:
  13. fmt.Printf("a 等于 3或者4\n") //可以多条件判断
  14. default:
  15. fmt.Printf("a 不等于1,2,3 4,a的值为:%d\n", a)
  16. }
  17. }

2)fallthrough

使用 fallthrough 会强制执行后面一条的 case 语句,哪怕它不满足case(判断为true)条件:

  1. package main
  2. import "fmt"
  3. func main() {
  4. //定义变量a=4
  5. a := 1
  6. fmt.Printf("a 的值为:%d\n", a)
  7. switch a {
  8. case 1:
  9. fmt.Printf("a 等于 1\n")
  10. fallthrough
  11. case 2: //由于上一条使用了fallthrough,所以我也会被执行
  12. fmt.Printf("a 等于 2\n")
  13. case 3,4:
  14. fmt.Printf("a 等于 3或者4\n") //可以多条件判断
  15. default:
  16. fmt.Printf("a 不等于1,2,3 4,a的值为:%d\n", a)
  17. }
  18. }

输出结果

  1. a 的值为:1
  2. a 等于 1
  3. a 等于 2

5. select 语句

待补充

相关文章

最新文章

更多