• 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)])
    }

    输出:

  • 相关阅读:
    国庆·生日
    国足
    Eason's concert
    今天的斩获
    The 4400
    闷热
    24
    一直登录不了。。。原来是因为。。。
    黄色暴雨警告
    绝密飞行
  • 原文地址:https://www.cnblogs.com/menkeyi/p/6085865.html
Copyright © 2020-2023  润新知