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:
下劃線意思是忽略這個變數.解釋2:比如os.open,返回值為*os.file,error
普通寫法是f,err := os.open(******x)
如果此時不需要知道返回的錯誤值
就可以用f, _ := os.open(******)
如此則忽略了error變數
佔位符,意思是那個位置本應賦給某個值,但是咱們不需要這個值,所以就把該值賦給下劃線,意思是丟掉不要,這樣編譯器可以更好的優化,任何型別的單個值都可以丟給下劃線。補充:這種情況是佔位用的,方法返回兩個結果,而你只想要乙個結果,那另乙個就用 _ 佔位,而如果用變數的話,不使用,編譯器是會報錯的。
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...