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对象进行初始化了! 
转自:https://blog.csdn.net/qq_21816375/article/details/77971697

golang中 "下划线" 的用法的更多相关文章

  1. golang _下划线占位符代替需要释放的资源的问题

    golang中_有两种作用,一种用在import中,比如这样 import _ "github.com/go-sql-driver/mysql" 表示并不需要导入整个包,只是执行这 ...

  2. 《Java7中 下划线的新特性》

    //Java7引入了一个新功能:程序员可以在数值中使用下画线,不管是 //整形数值,还是浮点型数值,都可以自由地使用下划线.通过下划线 //分隔,可以更直观的分辨数值中到底有多少位. public c ...

  3. Golang中的RegExp正则表达式用法指南

    ------------------------------------------------------------ Golang中的正则表达式 ------------------------- ...

  4. Scala中 下划线的用处

    From:   http://congli.iteye.com/blog/2169401 1.作为“通配符”,类似Java中的*.如import scala.math._ 2.:_*作为一个整体,告诉 ...

  5. scala下划线的用法

    1.作为“通配符”,类似Java中的*.如import scala.math._2.:_*作为一个整体,告诉编译器你希望将某个参数当作参数序列处理!例如val s = sum(1 to 5:_*)就是 ...

  6. golang中的reflect包用法

    最近在写一个自动生成api文档的功能,用到了reflect包来给结构体赋值,给空数组新增一个元素,这样只要定义一个input结构体和一个output的结构体,并填写一些相关tag信息,就能使用程序来生 ...

  7. golang中的rpc包用法

    RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样. 我所在公司的项目是采用基于Restful的微服务架构,随着微服 ...

  8. golang中os/exec包用法

    exec包执行外部命令,它将os.StartProcess进行包装使得它更容易映射到stdin和stdout,并且利用pipe连接i/o. 1.func LookPath(file string) ( ...

  9. golang中文件和路径用法

    package main import ( "fmt" "io/fs" "io/ioutil" "os" "p ...

随机推荐

  1. Hibernate HQL一对多 在一方的查询

    首先说一句:是版本的问题! 在多对多或者多对一,从一中查找多中查询某些语句时容易出现 我写的hql为: from Department as d where d.employees.name='Tom ...

  2. 初始化后,composer安装

    在项目目录下输入composer install(保证要有composer.json的前提下)

  3. thinkphp5中使用phpmailer实现发送邮件功能(转载)

    一.开启SMTP服务(使用php发送邮件需要用到SMTP服务,这里以163邮箱的SMTP服务为例). 1.登录163邮箱,在首页上找到“设置”. 2.选择开启的服务,一般都全选,POP3/SMTP/I ...

  4. Java设计模式系列 — 构造器模式

    想象下你有一个类,像下图所示有许多属性.假设你想让你的类不可变(顺便说一下,除非有一个好的理由不这样做,否则你应该坚持.但是我们会以另一种方式来达到要求.) public class User { p ...

  5. java爬取网站信息和url实例

    https://blog.csdn.net/weixin_38409425/article/details/78616688(出自此為博主) 具體代碼如下: import java.io.Buffer ...

  6. 剑指offer——python【第37题】数字在排序数组中出现的次数

    题目描述 统计一个数字在排序数组中出现的次数 思路 最贱的方法依旧是count计数.. 当然,,看到有序数组就应该想到二分法,找到重复数字左边和右边的数字,然后两个相减就可以了 解答 方法1 coun ...

  7. Python学习之旅(二十四)

    Python基础知识(23):进程和线程(Ⅱ) 一.threadlocal 在多线程环境下,每个线程都有自己的数据 一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响 ...

  8. Luogu 1177 - 【模板】快速排序 - [快速排序][归并排序][无旋Treap]

    题目链接:https://www.luogu.org/problemnew/show/P1177 题意:输入 $n$ 以及后续 $n$ 个整数,让你将这 $n$ 个整数从小到大排序输出. 归并排序(用 ...

  9. linux-----jdk、activemq安装

    功能 描述 JAVA_HOME安装路径 查找JAVA_HOME安装路径 echo $JAVA_HOME linux下安装activemq A:解压安装包 tar - zxvf apache-activ ...

  10. node_modules文件过长无法删除问题记录

    执行指令 rimraf node_modules