在Go语言中,变量或常量的数据类型必须先声明,才能使用,且无法将不相关的数据赋值给它们。
这是因为Go语言和Java、C、C++等语言一样,属于静态语言,静态语言具有更严谨的结构要求、调试便捷(可通过代码直观地看到数据类型)与确保类型安全(无法使用不同类型的数据赋值)的特点,必须要先做声明。而像PHP、Python、JavaScript等动态语言则没有这个限制。
从根本上说,静态类型和动态类型语言的最大区别就是:数据类型是否在编译时确定
变量使用 var
关键字进行声明
go// 此处声明了 a,但是没有初始化
var a string
// 为 a赋值
a = "hello"
govar a string = "Hello"
go// 方式 1
var a, b string = "hello", "world"
// 方式 2
var (
a string = "hello"
b string = "world"
)
go// go 语言会自动推断 a 为字符串类型
var a = "hello"
go 语言中,如果想要隐式声明,还想省略 var
关键字进行声明
可以使用简写声明 :=
goa := "hello"
相关信息
短变量声明只能在函数中使用,在函数外,n1 赋值形式是错误的
gopackage main
// n1会报错
n1 := 100
func main() {
n2 := 200
}
常量可以使用 const
关键字声明。常量是无法重新赋值
的固定值
goconst a = "这个值不能修改"
提示
虽然常量不能修改,但是常量的值可以分配给其他常量
goconst a = 10
const b = a
注意
由于常量不能变更,所以不可以将变量分配给常量
govar a = 10
// 这里是错误的行为
// a (variable of type int) is not constant (InvalidConstInit)
const b = a
本文作者:Silon汐冷
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!