Go学习笔记-变量
Go是一门很有意思的编程语言。虽算不得优雅,但也不浅薄。自C一脉相承,又吸收了些时髦的东西。最重要的是,它依旧简单。我喜欢简单,平日里也是竭尽所能将复杂的东西简单化。
有关Go的宣传语已经太多,优点或缺点都能罗列出长长的清单。我甚至不知道该如何做才能堆砌出本章内容,所以一直拖到全书的最后才去完成。
作为静态类型语言,Go变量总是有固定的数据类型,类型决定了变量内存的长度和存储格式。我们只能修改变量值,无法改变类型。
通过类型转换或指针操作,我们可用不同方式修改变量值,但这并不意味着改变了变量类型。
因为内存分配发生在运行期,所以在编码阶段我们用一个易于阅读的名字来表示这段内存。实际上,编译后的机器码从不使用变量名,而是直接通过内存地址来访问目标数据。保存在符号表中的变量名等信息可被删除,或用于输出更详细的错误信息。
关键字var用于定义变量,和C不同,类型被放在变量名后。另外,运行时内存分配操作会确保变量自动初始化为二进制零值(zero value),避免出现不可预测行为。如显式提供初始化值,可省略变量类型,由编译器推断。
var x int // 自动初始化为0
var y=false // 自动推断为bool类型
只是要注意,简短模式(short variable declaration)有些限制:
定义变量,同时显式初始化。不能提供数据类型。
只能用在函数内部。
对于粗心的新手,这可能会造成意外错误。比如原本打算修改全局变量,结果变成重新定义同名局部变量。
var x=100
func main() {
println(\&x,x) // 全局变量
x:= "abc" // 重新定义和初始化同名局部变量
println(\&x,x)
}
退化赋值的前提条件是:最少有一个新变量被定义,且必须是同一作用域。
在处理函数错误返回值时,退化赋值允许我们重复使用err变量,这是相当有益的。
赋值操作,必须确保左右值类型相同。
未使用错误
编译器将未使用局部变量当作错误。不要觉得麻烦,这有助于培养良好的编码习惯。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfbhkj
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01