<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                字符串是 UTF-8 字符的一個序列(當字符為 ASCII 碼時則占用 1 個字節,其它字符根據需要占用 2-4 個字節)。UTF-8 是被廣泛使用的編碼格式,是文本文件的標準編碼,其它包括 XML 和 JSON 在內,也都使用該編碼。由于該編碼對占用字節長度的不定性,Go 中的字符串也可能根據需要占用 1 至 4 個字節(示例見第 4.6 節),這與其它語言如 C++、Java 或者 Python 不同(Java 始終使用 2 個字節)。Go 這樣做的好處是不僅減少了內存和硬盤空間占用,同時也不用像其它語言那樣需要對使用 UTF-8 字符集的文本進行編碼和解碼。 字符串是一種值類型,且值不可變,即創建某個文本后你無法再次修改這個文本的內容;更深入地講,字符串是字節的定長數組。 Go 支持以下 2 種形式的字面值: * 解釋字符串: 該類字符串使用雙引號括起來,其中的相關的轉義字符將被替換,這些轉義字符包括: * `\n`:換行符 * `\r`:回車符 * `\t`:tab 鍵 * `\u`?或?`\U`:Unicode 字符 * `\\`:反斜杠自身 * 非解釋字符串: 該類字符串使用反引號括起來,支持換行,例如: ~~~ `This is a raw string \n` 中的 `\n\` 會被原樣輸出。 ~~~ 和 C/C++不一樣,Go 中的字符串是根據長度限定,而非特殊字符`\0`。 `string`?類型的零值為長度為零的字符串,即空字符串?`""`。 一般的比較運算符(`==`、`!=`、`<`、`<=`、`>=`、`>`)通過在內存中按字節比較來實現字符串的對比。你可以通過函數`len()`?來獲取字符串所占的字節長度,例如:`len(str)`。 字符串的內容(純字節)可以通過標準索引法來獲取,在中括號?`[]`?內寫入索引,索引從 0 開始計數: * 字符串 str 的第 1 個字節:`str[0]` * 第 i 個字節:`str[i - 1]` * 最后 1 個字節:`str[len(str)-1]` 需要注意的是,這種轉換方案只對純 ASCII 碼的字符串有效。 **注意事項**?獲取字符串中某個字節的地址的行為是非法的,例如:`&str[i]`。 **字符串拼接符?`+`** 兩個字符串?`s1`?和?`s2`?可以通過?`s := s1 + s2`?拼接在一起。 `s2`?追加在?`s1`?尾部并生成一個新的字符串?`s`。 你可以通過以下方式來對代碼中多行的字符串進行拼接: ~~~ str := "Beginning of the string " + "second part of the string" ~~~ 由于編譯器行尾自動補全分號的緣故,加號?`+`?必須放在第一行。 拼接的簡寫形式?`+=`?也可以用于字符串: ~~~ s := "hel" + "lo," s += "world!" fmt.Println(s) //輸出 “hello, world!” ~~~ 在循環中使用加號?`+`?拼接字符串并不是最高效的做法,更好的辦法是使用函數?`strings.Join()`(第 4.7.10 節),有沒有更好地辦法了?有!使用字節緩沖(`bytes.Buffer`)拼接更加給力(第 7.2.6 節)! 在第 7 章,我們會講到通過將字符串看作是字節(byte)的切片(slice)來實現對其標準索引法的操作。會在第 5.4.1 節中講到的 for 循環只會根據索引返回字符串中的純字節,而在第 5.4.4 節(以及第 7.6.1 節的示例)將會展示如何使用 for-range 循環來實現對 Unicode 字符串的迭代操作。在下一節,我們會學習到許多有關字符串操作的函數和方法,同時?`fmt`包中的?`fmt.Sprint(x)`?也可以格式化生成并返回你所需要的字符串(第 4.4.3 節)。 **練習 4.6**?[count_characters.go](https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/exercises/chapter_4/count_characters.go) 創建一個用于統計字節和字符(rune)的程序,并對字符串?`asSASA ddd dsjkdsjs dk`?進行分析,然后再分析?`asSASA ddd dsjkdsjsこん dk`,最后解釋兩者不同的原因(提示:使用?`unicode/utf8`?包)。
                  <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>

                              哎呀哎呀视频在线观看