Go語言使用字串的幾個技巧分享_Golang

來源:互聯網
上載者:User

一、字串底層就是一個位元組數組

這真的非常重要,而且影響著下面的其他幾個技巧。當你建立一個字串時,其本質就是一個位元組的數組。這意味著你可以像訪問數組一樣的訪問單獨的某個位元組。例如,下面的代碼逐個列印字串中的每個位元組以及對應位元組數組中的每個位元組:

package mainimport "fmt"func main() {   str := "hello"  for i := 0; i < len(str); i++ {    fmt.Printf("%b %s\n", str[i], string(str[i]))  }}

這是一個很重要的知識,因此才有了第二個技巧。。。

二、使用位元組數組或緩衝區可以提升字串串連的速度

在 Go 語言中字串是唯讀,這表示每次當你使用 str = str + "something" 時,實際上建立了一個新的字串對象。如果你尋求代碼的最高效率,這裡應該使用位元組緩衝區來替代,例如:

package mainimport (   "bytes"  "fmt")func main() {   str := "something"  buf := bytes.NewBufferString(str)  for i := 0; i < 1000; i++ {    buf.Write([]byte(randomString()))  }  fmt.Println(buf.String())}func randomString() string {   ret := "pretend-this-is-random"  return ret}

如果使用位元組數組會進一步提升上述代碼的效率,但你需要知道最終字串的大小。一個直觀的例子就是 Go 語言中的 left-pad 實現。

三、你可以像拼接其他數組一樣拼接字串

當你需要截取字串中的一部分時,可以使用像截取數組某部分那樣來操作,範例程式碼:

package mainimport "fmt"func main() {   str := "XBodyContentX"  content := str[1 : len(str)-1]  fmt.Println(content)}

四、使用 ` 符號來建立多行字串

這個相當簡單,你希望在代碼中定義一個包含多行地址資訊的字串,那麼你需要用到 ` 這個字元,如下所示:

package mainimport "fmt"func main() {   str := `Mr. Smith123 Something St Some City, CA 94043`   fmt.Println(str)}

五、你可以在字串中嵌入 Unicode 字元

假設實現 WebSocket 通訊時,你需要讓傳輸的資料以 0x00 開始,以 0xFF 結束[源碼]

我們可以在任一字元串中通過如下代碼實現:

package mainimport "fmt"func main() {   str := "\x00BodyContent\xff"  fmt.Println(str)}

同樣的,你可以使用 Unicode 字串來處理,或者也可以在字串中使用原始字元。例如,下面的代碼都是有效:

package mainimport "fmt"func main() {   a := "ÿay!"  b := "\u00FFay!"  fmt.Println(a, b)}

總結

關於Go語言使用字串的技巧就分享到這了,大家都學會了嗎?學會了這些相信會對大家使用Go語言很有協助,如果有有疑問大家可以留言交流。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.