在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Go 语言在声明变量时,自动对变量对应的内存区域进行初始化操作。每个变量会初始化其类型的默认值,例如:
回顾C语言
在C语言中,变量在声明时,并不会对变量对应内存区域进行清理操作。此时,变量值可能是完全不可预期的结果。开发者需要习惯在使用C语言进行声明时要初始化操作,稍有不慎,就会造成不可预知的后果。 变量初始化的标准格式var 变量名 类型 = 表达式
例如,游戏中,玩家的血量初始值为100。可以这样写: var hp int = 100
这句代码中,hp 为变量名,类型为 int,hp 的初始值为 100。 编译器推导类型的格式在标准格式的基础上,将 int 省略后,编译器会尝试根据等号右边的表达式推导 hp 变量的类型。 var hp = 100
等号右边的部分在编译原理里被称做右值(rvalue)。
var attack = 40 var defence = 20 var damageRate float32 = 0.17 var damage = float32(attack-defence) * damageRate fmt.Println(damage)
代码说明如下:
3.4
短变量声明并初始化var 的变量声明还有一种更为精简的写法,例如: hp := 100
这是 Go 语言的推导声明写法,编译器会自动根据右值类型推断出左值的对应类型。
// 声明 hp 变量 var hp int // 再次声明并赋值 hp := 10
编译报错如下: no new variables on left side of :=
意思是,在“:=”的左边没有新变量出现,意思就是“:=”的左边变量已经被声明了。 conn, err := net.Dial("tcp","127.0.0.1:8080")
net.Dial 提供按指定协议和地址发起网络连接,这个函数有两个返回值,一个是连接对象,一个是 err 对象。如果是标准格式将会变成: var conn net.Conn var err error conn, err = net.Dial("tcp", "127.0.0.1:8080")
因此,短变量声明并初始化的格式在开发中使用比较普遍。
conn, err := net.Dial("tcp", "127.0.0.1:8080") conn2, err := net.Dial("tcp", "127.0.0.1:8080")
上面的代码片段,编译器不会报err重复定义。
|
请发表评论