内容简介:1.忽略返回值这个应该是最简单的用途,比如某个函数返回三个参数,但是我们只需要其中的两个,另外一个参数可以忽略,这样的话代码可以这样写:例如我们定义了一个接口(interface):然后定义了一个结构体(struct)
golang的下划线有以下三种用法
1.忽略返回值这个应该是最简单的用途,比如某个函数返回三个参数,但是我们只需要其中的两个,另外一个参数可以忽略,这样的话代码可以这样写:
v1, v2, _ := function(...)
2.用在变量(特别是接口断言)
例如我们定义了一个接口(interface):
type Foo interface { Say() }
然后定义了一个结构体(struct)
type Dog struct { }
然后我们希望在代码中判断Dog这个struct是否实现了Foo这个interface
var _ Foo = Dog{}
上面用来判断Dog是否实现了Foo, 用作类型断言,如果Dog没有实现Foo,则会报编译错误
3.用在import package假设我们在代码的import中这样引入package:
import _ "test/foo"
这表示呢在执行本段代码之前会先调用test/foo中的初始化函数(init),这种使用方式仅让导入的包做初始化,而不使用包中其他功能
例如我们定义了一个Foo struct,然后对它进行初始化
package foo import "fmt" type Foo struct { Id int Name string } func init() { f := &Foo{Id: 123, Name: "abc"} fmt.Printf("init foo object: %v\n", f) }
然后在main函数里面引入test/foo
package main import ( "fmt" _ "test/foo" ) func main() { fmt.Printf("hello world\n") }
运行结果如下
init foo object: &{123 abc} hello world
我们可以看到:在main函数输出”hello world”之前就已经对foo对象进行初始化了!
end
以上所述就是小编给大家介绍的《golang之下划线(_)之语义说明》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Go语言 “ _ ”(下划线)
- 文字悬停下划线动画效果集合
- Swoole 5 将移除 PSR-0 下划线风格类名
- 在Python中使用双下划线防止类属性被覆盖
- Swoole 5.0 不再使用 PSR-0 下划线风格的类名
- backbone.js – 使用主干和下划线不呈现的单独模板文件
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C++数据结构与算法
[美]乔兹德克(Adam Drozdek) / 徐丹、吴伟敏 / 清华大学出版社 / 2014-10-1 / 63.00元
本书全面系统地介绍了数据结构,并以C++语言实现相关的算法。书中主要强调了数据结构和算法之间的联系,使用面向对象的方法介绍数据结构,其内容包括算法的复杂度分析、链表、栈、队列、递归、二叉树、图、排序和散列。书中还清晰地阐述了同类教材中较少提到的内存管理、数据压缩和字符串匹配等主题。书中包含大量的示例分析和图形,便于读者进一步理解和巩固所学的知识。一起来看看 《C++数据结构与算法》 这本书的介绍吧!