Go语言中的下划线

1. 下划线

“_”是特殊标识符,用来忽略结果。

1.1.1. 下划线在import中

在Golang里,import的作用是导入其他package。

import 下划线的作用:当导入一个包时,该包下的文件里所有init()函数都会被执行,然而,有些时候我们并不需要把整个包都导入进来,仅仅是是希望它执行init()函数而已。这个时候就可以使用 import 引用该包。即使用【import _ 包路径】只是引用该包,仅仅是为了调用init()函数,所以无法通过包名来调用包中的其他函数。 示例:

import "database/sql"
import _ "github.com/go-sql-driver/mysql"

第二个import就是不直接使用mysql包,只是执行一下这个包的init函数,把mysql的驱动注册到sql包里,然后程序里就可以使用sql包来访问mysql数据库了

1.1.2. 下划线在代码中

比如os.Open,返回值为*os.File,error
普通写法是f,err := os.Open("/text.txt")
如果此时不需要知道返回的错误值,就可以写成如下:
f, _ := os.Open("/text.txt")

如此则忽略了error变量

解释:

占位符,意思是那个位置本应赋给某个值,但是咱们不需要这个值。
所以就把该值赋给下划线,意思是丢掉不要。
这样编译器可以更好的优化,任何类型的单个值都可以丢给下划线。
这种情况是占位用的,方法返回两个结果,而你只想要一个结果。
那另一个就用 “_” 占位,而如果用变量的话,不使用,编译器是会报错的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在VSCode,如果GO语言的main函数有红色下划线,通常表示存在语法错误或者代码不规范。可能的原因是缺少必要的导入语句或者函数命名错误等。为了解决这个问题,你可以使用golangci-lint这个工具来进行代码检查和规范化。golangci-lint是一个集成了多个linter的框架,可以帮助你更全面地分析和检查Go代码。你可以在VSCode安装go插件,并配置.golangci.yml文件来自动检测和修复代码的问题。使用golangci-lint可以帮助你找到并解决main函数的错误,使代码更加规范和可读。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [golangci-lint在vscode的使用,以及配置的一些探索](https://blog.csdn.net/neve_give_up_dan/article/details/125300460)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Go 事,如何成为一个Gopher ,并在7天找到 Go 语言相关工作,第1篇](https://blog.csdn.net/hihell/article/details/125886206)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值