4.6 字符串

      字符串是 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 种形式的字面值:

// test
package main

import (
    "fmt"
)

// "" 解释型字符串
:换行符  
:回车符  	:tab 键    u 或 U:Unicode 字符    \:反斜杠自身
var str string = "解释型字符串
"

//非解释型字符串将   
直接打印出来
var str1 string = `非解释型字符串
`

func main() {
    fmt.Println(str)
    fmt.Println(str1)
}

输出:

字符传的拼接

package main

import (
    "fmt"
)

func main() {
    str := "Beginning of the string " +
        "second part of the string"

        /*
           提示:在循环中使用加号 + 拼接字符串并不是最高效的做法,更好的办法是使用函数 strings.Join(),
               有没有更好地办法了?有!使用字节缓冲(bytes.Buffer)拼接更加给力。
        */
    s := "hel" + "lo"
    s += "word!"
    fmt.Println(str)
    fmt.Println(s)

    //统计字符串个数  len(str)
    fmt.Println("str字符串的个数:", len(str))

    /*小提示
      fmt.Print(arg列表)格式化 arg 列表,非字符串元素之间添加空格
      fmt.Println 格式化列表,所有元素之间添加空格,结尾添加换行符
      fmt.Printf  使用格式字符串格式化 arg 列表。('格式字符串%s,%s,%s', arg1,arg2,arg3),就是把arg和%s的个数进行了一个绑定
    */

    //字符串支持索引,但是str[1]这样返回的是ASCII码。正常索引需要[x:y]开始结束
    fmt.Println("str字符串的个数:", str[1])

    //打印全部.这样也是打印全部[:]
    fmt.Printf("str字符串的个数:%s", str[0:len(str)])
}

输出:

原文地址:https://www.cnblogs.com/menkeyi/p/6085865.html