• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

(Go)03.go类型

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1.1 变量
Go 是静态类型语⾔言,不能在运⾏行期改变变量类型。
使⽤用关键字 var 定义变量,⾃自动初始化为零值。如果提供初始化值,可省略变量类型,由
编译器⾃自动推断。

var x int
var f float32 = 1.6
var s = "abc"

在函数内部,可⽤用更简略的 ":=" ⽅方式定义变量。
func main() {
x := 123 // 注意检查,是定义新局部变量,还是修改全局变量。该⽅方式容易造成错误。
}
可一次定义多个变量。

var x, y, z int
var s, n = "abc", 123
var (
a int
b float32
)
func main() {
n, s := 0x1234, "Hello, World!"
println(x, s, n)
}

多变量赋值时,先计算所有相关值,然后再从左到右依次赋值。
data, i := [3]int{0, 1, 2}, 0
i, data[i] = 2, 100 // (i = 0) -> (i = 2), (data[0] = 100)
特殊只写变量 "_",⽤用于忽略值占位。

func test() (int, string) {
return 1, "abc"
}
func main() {
_, s := test()
println(s)
}

编译器会将未使⽤用的局部变量当做错误。
var s string // 全局变量没问题。
func main() {
i := 0 // Error: i declared and not used。(可使用 "_ = i" 规避)
}
注意重新赋值与定义新同名变量的区别。

s := "abc"
println(&s)
s, y := "hello", 20 // 重新赋值: 与前 s 在同⼀一层次的代码块中,且有新的变量被定义。
println(&s, y) // 通常函数多返回值 err 会被重复使⽤用。
{
s, z := 1000, 30 // 定义新同名变量: 不在同⼀一层次代码块。
println(&s, z)
}

输出:
0x2210230f30
0x2210230f30 20
0x2210230f18 30


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Go语言之产生随机数发布时间:2022-07-10
下一篇:
go反射----1类型发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap