时间:2021-05-22
前言
Go语言是一门很简单的语言,它为我们做了很多的决定,比如很多在其他语言中不推荐使用的编码风格在Go是不允许的。比如: 变量或者包声明或导入后没有使用是无法编译通过的。 它的编译只有Fatal没有Warning,这对于代码质量是很有好处的。在其他语言中 最佳实践也是编写warning-free的代码。Go把这个最佳实践放到了语言级别。
Go中的空标示符(blank indentifier): _
刚开始在看到Go中的空标示符是以为它只是一种约定,因为下划线看起来比那么的 显眼,而普通变量又不太可能只使用一个下划线来命名,在其他语言中我们不想使用 一个变量的话很简单忽略之就可以了,而如果对一个函数的返回值不感兴趣的话, 不对返回值赋值即可。
先记录下结论:空标示符不是一个普通变量或标示符,而是一个特殊的标示符, 对于这种类型的标示符绑定表达式时不进行真正的绑定。
这是什么意思呢?也就说比如将一个值赋值给空操作符是不会进行值绑定的。
package mainimport ( _ "io" // 如果不重名名包为_ 而在代码中没有使用这个包会编译不通过 // 这样导入一个包是有副作用的,导入一个包后会执行包的init()方法, // 如果只是为了避免编译不通过而绑定到_是不推荐的做法。 "fmt")func getMulti() (int, int) { return 3, 4}func main() { _ = 20 // 绑定没有作用,不会报错 // _ := 10 // 编译不通过,因为表达式左边没有一个有效的新的标示符 // no new variables on left side of := x, _ := getMulti() fmt.Printf("%d\n", x) // fmt.Printf("%d\n", _) 这样是编译不通过的,因为_并不能被赋值 // 编译 "cannot use _ as value"}总结
空标示符不是普通标示符,是一个语言级别的标示符,通常用来:
显式的忽略函数或其他多值赋值表达式中的某些的返回值,多值表达式通常有:
1、函数的多个返回值
2、range循环中的key-value值
3、多值赋值,比如: x, y, z := 10, 20, 30, 不过这种情况比较小
或者导入包不使用包而只利用包的初始化函数的副作用。但是不推荐用这种方式 ,来绕过因为包未被使用而编译不通过的问题
本文这里只是做一个笔记,其实Go的语言规范中写的还是很详细的。对于一些有疑惑的地方一翻手册就会发现答案。这也是一门语言小的好处,歧义会非常少。希望本文对大家学习Go语言有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一.GO语言开发包1.什么是GO语言开发包go语言开发包其实是对go语言的一种实现,包括相应版本的语法,编译,运行,垃圾回收等,里面包含着开发go语言所需的标准
+号拼接这种拼接最简单,也最容易被我们使用,因为它是不限编程语言的,比如Go语言有,Java也有,它们是+号运算符,在运行时计算的。varsstrings+="
Go语言是一个开源的,为创建简单的,快速的,可靠的软件而设计的语言。Go语言实(示)例教程,通过过实例加注释的方式来介绍Go语言的用法。HelloWorld第一
Go语言编辑器JetBrainsGoLand2021最新版是目前JetBrains针对go语言开发的最新GO语言编程工具,工具十分的好用,集成了非常不错的功能,
要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符,标示符'r'表示读。>>>f=open('D:/test.txt'