<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                <p align="right">2021年08月31日 13:54:49</p> [TOC] # 下劃線 `_`是特殊標識符,用來忽略結果 ## 下劃線在import中 在Golang里,iimport的作用是導入其他package > mport 下劃線(如:`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. ``` ## 下劃線在代碼中 ``` 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數據庫了 ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看