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

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

一、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)
}

输出结果

二、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 语句

待补充

相关文章