国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Golang > 正文

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

2020-04-01 19:08:45
字體:
來源:轉載
供稿:網友

一、字符串底層就是一個字節數組

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

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語言很有幫助,如果有有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灵寿县| 泸溪县| 万荣县| 湛江市| 永顺县| 河间市| 堆龙德庆县| 腾冲县| 米泉市| 天祝| 怀柔区| 屏边| 阿图什市| 独山县| 缙云县| 游戏| 紫金县| 沧源| 闻喜县| 凤冈县| 临漳县| 松阳县| 晋江市| 马关县| 伊吾县| 通化县| 武义县| 积石山| 丹寨县| 凤凰县| 齐齐哈尔市| 南岸区| 岳阳县| 民县| 舟山市| 白玉县| 阿巴嘎旗| 盐亭县| 河东区| 娱乐| 石城县|