<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          五個我最近在 Go 里學(xué)到的小技巧

          共 3273字,需瀏覽 7分鐘

           ·

          2024-07-03 08:00

          原文鏈接:https://medium.com/@andreiboar/5-small-tips-i-recently-learned-in-go-cf52d50cf129

          讓編譯器計算數(shù)組數(shù)量

          我們在 Go 通常很少使用數(shù)組 arrays,一般使用切片 Slice 來代替;

          但是當(dāng)你需要使用的時候,如果你對需要指定數(shù)量大小感到很煩時可以使用 [...] 讓編譯器自動幫我們計算數(shù)組大小:

          package main  
            
          import "fmt"  
            
          func main() {  
          arr := [3]int{123}  
          sameArr := [...]int{123// Use ... instead of 3  
            
          // Arrays are equivalent  
          fmt.Println(arr)  
          fmt.Println(sameArr)  
          }

          使用 go run . 替換 go run main.go

          每當(dāng)我用 Go 寫第一行代碼時,我都習(xí)慣于開始寫 main.go:

          package main

          import "fmt"

          func main() {
              sayHello()
          }

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

          但是當(dāng) main.go 變得越來越大時,我喜歡把一些結(jié)構(gòu)體移動到新的文件里,還是在 main 這個包中。

          main.go:

          package main  
            
          func main() {  
           sayHello()  
          }

          say_hello.go:

          package main  
            
          import "fmt"  
            
          func sayHello() {  
           fmt.Println("Hello!")  
          }

          此時使用 go run main.go 將會得到以下的錯誤:

          # command-line-arguments  
          ./main.go:4:2: undefined: sayHello

          此時可以使用 go run . 來解決這個問題。

          使用下劃線讓你的數(shù)字變得更易讀

          你知道可以使用下劃線使得你的長數(shù)字更易讀嗎?

          package main

          import "fmt"

          func main() {
              number := 10000000
              better := 10_000_000

              fmt.Println(number == better)

          可以在同一個包下有不同的測試包

          在 Go 中我通常認(rèn)為一個目錄下只能有一個包,但也不是完全正確的。

          假設(shè)你有一個包名為:yourpackage 此時你可以還可以在同一個目錄下創(chuàng)建一個名為 yourpackage_test 的包,同時在這個包里編寫你的測試代碼。

          這樣做的好處是,那些沒有被 exporter 的函數(shù)在 yourpackage_test 包下是不能直接訪問的,確保測試的是被暴露的函數(shù)。

          多次傳遞相同參數(shù)的簡單方法

          在使用字符串格式化函數(shù)時,我總是覺得必須重復(fù)一個多次使用的參數(shù)很煩人:

          package main

          import "fmt"

          func main() {
              name := "Bob"
              fmt.Printf("My name is %s. Yes, you heard that right: %s\n", name, name)

          還好還有更簡便的方法,這樣只需要傳遞一次參數(shù):

          package main  
            
          import "fmt"  
            
          func main() {  
           name := "Bob"  
           fmt.Printf("My name is %[1]s. Yes, you heard that right: %[1]s\n", name)  
          }

          在這個 Twitter 里發(fā)現(xiàn)的:

          希望你今天學(xué)到了一些新東西,最近有沒有發(fā)現(xiàn)一些你從來不知道的 Golang 小技巧?


          往期推薦

          如何找到并快速上手一個開源項目

          OpenTelemetry 深度定制:跨服務(wù)追蹤的實戰(zhàn)技巧

          從 Prometheus 到 OpenTelemetry: 指標(biāo)監(jiān)控的演進與實踐

          Rust 在許多方面都優(yōu)于 Go,但為什么沒有 Go 流行?

          從 Dapper 到 OpenTelemetry:分布式追蹤的演進之旅

           

          點分享

          點收藏

          點點贊

          點在看

           

          瀏覽 75
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产亚洲色婷婷99 | 成人网站在线免费观看 | 成人女人18女人毛片 | 考逼视频在线观看 | 免费看按摩AAAAAA片 |