Go中的下劃線

2021-09-19 14:41:05 字數 1214 閱讀 7158

import 下劃線(如:import _ hello/imp)的作用:當匯入乙個包時,該包下的檔案裡所有init()函式都會被執行,然而,有些時候我們並不需要把整個包都匯入進來,僅僅是是希望它執行init()函式而已。這個時候就可以使用 import _ 引用該包。即使用【import _ 包路徑】只是引用該包,僅僅是為了呼叫init()函式,所以無法通過包名來呼叫包中的其他函式。

示例:**結構

main.go

package main

import _ "hello/imp"

func main()

init.go

package imp

import "fmt"

func init()

func print()

輸出結果:

imp-init() come here.
package main

import (

"os"

)func main()

os.stdout.write(buf[:n])

}

解釋1:

下劃線意思是忽略這個變數.

比如os.open,返回值為*os.file,error

普通寫法是f,err := os.open(******x)

如果此時不需要知道返回的錯誤值

就可以用f, _ := os.open(******)

如此則忽略了error變數

解釋2:

佔位符,意思是那個位置本應賦給某個值,但是咱們不需要這個值,所以就把該值賦給下劃線,意思是丟掉不要,這樣編譯器可以更好的優化,任何型別的單個值都可以丟給下劃線。

這種情況是佔位用的,方法返回兩個結果,而你只想要乙個結果,那另乙個就用 _ 佔位,而如果用變數的話,不使用,編譯器是會報錯的。

補充:

import "database/sql"

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

第二個import就是不直接使用mysql包,只是執行一下這個包的init函式,把mysql的驅動註冊到sql包裡,然後程式裡就可以使用sql包來訪問mysql資料庫了。

Go中的下劃線

import 下劃線 如 import hello imp 的作用 當匯入乙個包時,該包下的檔案裡所有init 函式都會被執行,然而,有些時候我們並不需要把整個包都匯入進來,僅僅是是希望它執行init 函式而已。這個時候就可以使用 import 引用該包。即使用 import 包路徑 只是引用該包,...

Python中單下劃線和雙下劃線

python中存在一些特殊的方法,有些方法以雙下劃線 開頭和結尾,它們是python的魔法函式,比如 init 和 str 等等。不用要這種方式命名自己的變數或者函式。class a def init self,text self.text text def str self return self...

Python中單下劃線和雙下劃線

雙下劃線開頭和結尾 python中存在一些特殊的方法,有些方法以雙下劃線 開頭和結尾,它們是python的魔法函式,比如 init 和 str 等等。不用要這種方式命名自己的變數或者函式。classa def init self,text self.text text def str self re...