美文网首页
Go语言 “ _ ”(下划线)

Go语言 “ _ ”(下划线)

作者: weifansym | 来源:发表于2019-02-17 23:39 被阅读0次

Go语言 “ _ ”(下划线)

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

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

src 
|
+--- main.go            
|
+--- hello
       |
       +--- hello.go

main.go

package main

import _ "./hello"

func main() {
    // hello.Print() 
    //编译报错:./main.go:6:5: undefined: hello
}

hello.go

package hello

import "fmt"

func init() {
    fmt.Println("imp-init() come here.")
}

func Print() {
    fmt.Println("Hello!")
}

输出结果:

imp-init() come here.

2.下划线在代码中

package main

import (
    "os"
)

func main() {
    buf := make([]byte, 1024)
    f, _ := os.Open("/Users/***/Desktop/text.txt")
    defer f.Close()
    for {
        n, _ := f.Read(buf)
        if n == 0 {
            break    

        }
        os.Stdout.Write(buf[:n])
    }
}

解释1:

下划线意思是忽略这个变量.

比如os.Open,返回值为*os.File,error

普通写法是f,err := os.Open("xxxxxxx")

如果此时不需要知道返回的错误值

就可以用f, _ := os.Open("xxxxxx")

如此则忽略了error变量

解释2:

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

补充:

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

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

相关文章

  • Go语言 “ _ ”(下划线)

    Go语言 “ _ ”(下划线) “_”是特殊标识符,用来忽略结果。 1.下划线在import中 在Golang里,...

  • 2020-03-07 go语言学习

    Go语言 “ _ ”(下划线),“_”是特殊标识符,用来忽略结果。 下划线意思是忽略这个变量.比如os.Open,...

  • Go常量变量_002

    Go 常量变量 变量 go语言中变量名由字母、数字、下划线组成,其中首个字符不能为数字。Go 语言中关键字和保留字...

  • 二. go的基础知识

    所有go源码以.go结尾 标识符以字母或下划线开头,大小写敏感,(_是特殊标识符,还可用来忽略结果)Go语言中的函...

  • 【Go从学会到学废】(三) 变量和常量

    Go声明变量方法: Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。 声明变量的一般形式是使用 ...

  • 潍坊go语言培训

    潍坊go语言培训潍坊go语言培训潍坊go语言培训潍坊go语言培训潍坊go语言培训潍坊go语言培训潍坊go语言培训潍...

  • 初识Go语言-1

    Go语言学习路径 初识Go语言 Go语言环境搭建与IDE安装 Go语言基础语法 Go语言数据类型 Go语言变量和常...

  • 常用正则规则

    Go语言标准库内建提供了regexp包 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s ...

  • go语言基础---变量、类型和常量

    1、变量 Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字,有标识符var声明. 示例: 1.1 ...

  • Go 语言学习技巧和编程思维

    Go 语言学习技巧和编程思维 一、了解 Go 语言 了解 Go 语言背景 学习 Go 语言,首先要了解 Go 语言...

网友评论

      本文标题:Go语言 “ _ ”(下划线)

      本文链接:https://www.haomeiwen.com/subject/hlqoeqtx.html