11.1、基本介绍
字符串就是一串固定长度的字符链接起来的字符序列,go的字符串是由单个字节连接起来的,go语言的字符串的字节使用utf-8编码标识unicode文本
eg:
/* string类型 */
package main
import (
"fmt"
// "unsafe"
)
func main() {
//string的基本使用
var address string = "中国上海,hello golang"
fmt.Println(address)
}
中国上海,hello golang
11.2、string使用注意事项和细节
1.go语言的字符串的字节使用utf-8编码标识unicode文本,这样golang使用utf-8编码,中文乱码问题不再困扰程序员。
2.字符串一旦赋值了,字符串就不能修改,在go中字符串是不可变 的。
//字符串一旦赋值了,字符串就不能修改了,在go中字符串是不可变的
var str = "hello"
str[0] = 'a' //不能修改str内容,go中字符串是不可变 的。
fmt.Println("str=",str)
3.字符串有两种表示形式:
(1)双引号,会识别转义字符
(2)反引号,以字符串的原生形式输出,包括换行和特殊字符,可以使用防止攻击、输出源代码等效果。
//双引号识别转义字符
str2 := "abc\nabc"
fmt.Println(str2)
//使用的反引号`` 原生形式输出
str3 := `
package main
import (
"fmt"
"unsafe"
)
func main(){
var b = true
fmt.Println("b=",b)
//bool类型占用存储空间是1个字符
fmt.Println("b的占用空间=",unsafe.Sizeof(b))
}
*/
`
fmt.Println(str3)
输出效果:
abc
abc
package main
import (
"fmt"
"unsafe"
)
func main(){
var b = true
fmt.Println("b=",b)
//bool类型占用存储空间是1个字符
fmt.Println("b的占用空间=",unsafe.Sizeof(b))
}
*/
4.字符串拼接方式
//字符串拼接方式
var str4 = "hello" + "world"
str4 += "hahahaha!"
fmt.Println(str4)
结果:
helloworldhahahaha!
5.当一行字符串太长时,需要使用到多行字符串,可做如下处理
//多行处理,可以分行写,需要将+保留在上一行
str5 := "hello" + "world" + "hello" + "world" +
"hello" + "world" +
"hello" + "world"
fmt.Println(str5)