呼叫沒有包前綴的包函數
在Go 中,導入包可以有效地將其導出的標識符複製到導入包的作用域中。然而,在某些情況下,人們可能希望存取包函數而不使用其包名稱作為前綴。本問題探討了實現此目的的不同方法。
一種方法是「點導入」技術。 Go 規格規定,使用不含套件名稱的句點 (.) 會將所有匯出的識別碼從該套件匯入到目前套件的檔案範圍。這允許直接存取導入的函數而無需前綴。
<code class="go">package main import . "fmt" // import all exported identifiers from "fmt" func main() { Println("hey there") }</code>
但是,Go 社群不鼓勵這種技術,因為它會模糊標識符的來源,使程式碼更難以閱讀。
或者,可以宣告一個引用所需函數的包級變數。這種方法涉及導入包並聲明一個保存函數引用的變數。
<code class="go">package main import ( "fmt" ) var Println = fmt.Println // declare a package-level variable referencing fmt.Println func main() { Println("Hello, playground") }</code>
最後,型別別名可用來引用導入包中宣告的型別。
<code class="go">package main import ( "fmt" ) type ScanState = fmt.ScanState // type alias fmt.ScanState func main() { // use ScanState as a type without the "fmt." prefix }</code>
雖然這些方法提供了避免在呼叫函數時添加套件名稱前綴的方法,但需要注意的是,Go 社群通常鼓勵明確命名並避免點匯入。
以上是如何在不使用套件前綴的情況下呼叫 Go 中的套件函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!