• Go单引号和双引号区别


    首先做个测试,看下面那个选项是正确的:

    A. str:='abc'+'123'
    B. str:="abc"+"123"
    C. str:='123'+"abc"
    D. str:=`123`+`abc`
    E. str:=`123`+'abc'
    F. str:=`123`+"abc"
    1
    2
    3
    4
    5
    6
    正确答案为BDF,为什么是这样呢?这就是Go的特别之处。其他语言,例如JavaScript,单引号和双引号可以同时使用,都可以用来表示字符串。Java中单引号表示char类型,双引号表示string类型。而在Go中,双引号是用来表示字符串string,其实质是一个byte类型的数组,单引号表示rune类型。还有一个反引号,用来创建原生的字符串字面量,它可以由多行组成,但不支持任何转义序列。因此,当把两个不同类型的变量进行拼接时,就会报错。

    字符串
    Go中字符串是一个不可变的值类型,内部用指针指向UTF-8字节数组。因此可以用索引号访问某字节,也可以用len()函数来获取字符串所占的字节长度。例如:

    str:="hello world"
    fmt.Println(str[3:5])
    1
    2
    这时的输出结果为“lo”,但如果将打印的内容改为“str[3]”,则会输出108。为什么会出现这种结果,可以查看go字符串的遍历输出。
    在文章开始的测试例子中,还用到了字符串拼接符+。在实际使用时还需要注意,当拼接的字符串位于不同行时,拼接符需要放在上一行的末尾,这是因为编译器会进行行尾自动补全分号的缘故。例如:

    str:="hello"+
    "world"
    1
    2
    Go标准包也提供了函数来实现这一功能,strings.Join()。

    str1:=[]string{"hello","world"}
    str:=strings.Join(str1,",")
    fmt.Println(str)

  • 相关阅读:
    jquery的常用api和两个特性
    react脚手架和深入理解jsx语法
    前端常见的性能优化
    前后端交互模型(一个面试题引发的思考总结)
    jquery源码部分分析
    bootstrap快速上手
    vue总结
    MySQL连接查询驱动表被驱动表以及性能优化
    一分钟掌握MySQL的InnoDB引擎B+树索引
    一分钟明白MySQL聚簇索引和非聚簇索引
  • 原文地址:https://www.cnblogs.com/ExMan/p/11773472.html
Copyright © 2020-2023  润新知