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)
}
输出结果
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中的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
需要注意的是,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")
}
}
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")
}
}
}
注意: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)
}
}
使用 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
待补充
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/momoda118/article/details/121109078
内容来源于网络,如有侵权,请联系作者删除!