携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第16天,点击查看活动详情
Go语言中的程序实体包括变量、常量、函数、结构体和接口。
变量
声明变量
var用于声明一个变量列表,跟函数的参数列表一样,类型在最后。
package main
import "fmt"
var c, python, java bool
func main() {
var i int
fmt.Println(i, c, python, java)
}
短变量声明
在函数中,简洁赋值语句 := 可在类型明确的地方代替var声明。函数外的每个语句都必须以关键字开始(var,func等等),因此:=结构不能在函数外使用。
package main
import "fmt"
func main() {
var i, j int = 1, 2
k := 3
c, python, java := true, false, "no!"
fmt.Println(i, j, k, c, python, java)
}
初始化
变量声明可以包含初始值,每个变量对应一个。如果初始化值已经存在,则可以省略类型;变量会从初始值中获得类型。
package main
import "fmt"
var i, j int = 1, 2
func main() {
var c, python, java = true, false, "no!"
fmt.Println(i, j, c, python, java)
}
判断变量类型
package main
import "fmt"
var container = []string{"zero", "one", "two"}
func main() {
container := map[int]string{1: "zero", 0: "one", 2: "two"}
fmt.Printf("The element is %q.\n", container[1])
value, ok := interface{}(container).([]string)
fmt.Println(value, ok)
}
ok是是布尔(bool)类型的,它将代表类型判断的结果,true或false。value代表类型转换后的值(转换失败就是空)。
常量
常量的声明与变量类似,只不过是使用const关键字。常量可以是字符、字符串、布尔值或数值。常量不能用 := 语法声明。
package main
import "fmt"
const Pi = 3.14
func main() {
const World = "世界"
fmt.Println("Hello", World)
fmt.Println("Happy", Pi, "Day")
const Truth = true
fmt.Println("Go rules?", Truth)
}
数值常量
数值常量是高精度的 值。
一个未指定类型的常量由上下文来决定其类型。
package main
import "fmt"
const (
Big = 1 << 100
Small = Big >> 99
)
func needInt(x int) int {
return x*10 + 1
}
func needFloat(x float64) float64 {
return x * 0.1
}
func main() {
fmt.Println(needInt(Small))
fmt.Println(needFloat(Small))
fmt.Println(needFloat(Big))
}