标签:判断 str 不可 它的 变量定义 声明变量 UNC 指针 动态
变量这个词来源于数学,类似方程中的x、y,代表的是存储在计算机中的值。这里主要介绍Go和其它编程语言不一样的地方,在前面我们提到过,Go是一门静态语言。静态语言区别动态语言一个重要的特性就是变量的类型不可变,一般是在声明的时候就指定类型,之后就不可修改它的类型,而动态语言可以随时修改变量的类型。Go的变量可以在声明的时候不指定类型而是直接赋值,Go会自动根据值判断变量的类型,比如:
var i = 1
当然这时i
的类型(int
)也就确定了之后不能修改i
的类型。
也可以声明的时候指定类型:
var i int
这里面的i
就是int
类型。如果变量声明的时候没有给定初始值,那默认就是零值,比如:
var i int
var s string
fmt.Println(i)
fmt.Println(s)
输出是:
0
这里string的零值是""。bool类型的零值是false,以后讲到的指针类型零值是nil
:=
声明上面介绍过,Go可以在变量定义的时候比指定类型,系统自动判断类型,那声明的变量的时候加上var是不是感觉有点多余了。Go可以用:=
这种写法直接声明变量例如:
i := 5
a := false
这时i
就是int
类型值为5
,a
就是bool
类型值为false
,需要注意的是它只能被用在函数中,不能全局的声明变量例如:
package main
import "fmt"
i := 1
func main() {
fmt.Println(i)
}
这样是不行的。
还有就是相同的变量,在同一个代码块中只能这样被声明一次,第二次声明也是错误的例如:
package main
import "fmt"
func main() {
i := 1
i : = 2
fmt.Println(i)
}
这样也会报错。
多变量声明是指一次可以声明多个变量例如
var i, j, k int
i, j, k = 0, 1, 2
var m, n = 1, 2
var a, b = 1, false
需要指出的是多个变量声明可以指定不通的类型例如上面 var a, b = 1, false
也支持:=
形式的多变量声明
a, b := 1, false
只要 :=
左侧出现了新的变量就可以例如:
a, b := 1, false
b, c := false, 1
标签:判断 str 不可 它的 变量定义 声明变量 UNC 指针 动态
原文地址:https://www.cnblogs.com/pirate-hcc/p/13295543.html