Copyright © 2022-2025 aizws.net · 网站版本: v1.2.6·内部版本: v1.25.2·
页面加载耗时 0.00 毫秒·物理内存 139.0MB ·虚拟内存 1438.1MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
变量是在编程语言中通过名字可以访问的一块内存空间,里面存储的数据可以在程序运行时修改。这个变量的名字称为变量名。
Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。
var identifier type
可以一次声明多个变量:
var identifier1, identifier2 type
package main
import "fmt"
func main() {
var s string = test"
fmt.Println(a)
var a, b int = 1, 2
fmt.Println(a, b)
}
以上实例输出结果为:
test 1 2
var v_name v_type
如果变量声明没有指定变量的初值,则变量值自动设置为系统默认值。不同的变量类型有不同的默认值。
package main
import "fmt"
func main() {
// 字符串变量未指定初值,默认值为空
var a
fmt.Println(a)
// 整型变量未指定初值,默认值为0
var b int
fmt.Println(b)
// 布尔型变量未指定初值,默认值为false
var c bool
fmt.Println(c)
}
以上实例执行结果为:
0 false
各类型变量的系统默认值:
var a *int // 指针
var a []int // 切片
var a map[string] int // 字典
var a chan int // 通道
var a func(string) int // 函数
var a interface{} // 接口
变量指定类型,不指定初值的范例:
package main
import "fmt"
func main() {
var i int
var f float64
var b bool
var s string
fmt.Printf("%v %v %v %v\n", i, f, b, s)
}
输出结果是:
0 0 false ""
var v_name = value
编译程序根据初值自行推断变量类型。
package main
import "fmt"
func main() {
var d = true
fmt.Println(d)
}
编译程序推断变量d为布尔类型,输出结果是:true。
v_name := value
编译程序根据初值自行推断变量类型。
可以将 var f string = "test" 简写为 f := "test":
package main
import "fmt"
func main() {
f := "test" // var f string = "test"
fmt.Println(f)
}
输出结果是:test。
//类型相同多个变量, 非全局变量
var vname1, vname2 type
vname1, vname2 = v1, v2
var vname1, vname2 = v1, v2 // 和 python 很像,不需要显示声明类型,自动推断
vname1, vname2 := v1, v2 // 出现在 := 左侧的变量不应该是已经被声明过的,否则会导致编译错误
// 这种因式分解关键字的写法一般用于声明全局变量
var (
vname1 v_type1
vname2 v_type2
)
多变量声明的范例:
package main
var x, y int
var (
a int
b bool
)
var c, d int = 1, 2
var e, f = 123, "hello"
//这种不带声明格式的只能在函数体中出现
//g, h := 123, "hello"
func main(){
g, h := 123, "hello"
println(x, y, a, b, c, d, e, f, g, h)
}
以上实例执行结果为:
0 0 0 false 1 2 123 hello 123 hello
Go语言 常量:常量是在编程语言中,通过名字可以访问的一个数据,里面存储的数据在程序运行时不能修改。Go语言的常量关键字是const,常量的数值在编译阶段就已经确定。Go语言中常量的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。常量用于枚举。