数据类型之字符串
前言:
String 字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的,本质是只读的字符型数组。
Go语言的字符串UTF-8编码标识Unicode文本,当字符为 ASCII 码表上的字符时则占用 1 个字节,其它字符根据需要占用 2-4 个字节 (中文占3个字节)
正文:
字符串只能使用 双引号 包裹。
字符串默认是空字符串
字符串一旦赋值后,就不能修改。可以重新赋值,但是不能对字符串里面的单个字符进行修改
单引号,双引号,反引号区别:
单引号:
单引号里面只能包含一个字符,
默认是rune类型(等同于int32),输出值会自动修改为ASCII的数字值
当单引号定义多余1个字符,编辑器则会报错,无法编译
单引号示例:
var s = 'a'
fmt.Println(s) //输出97 ,为a的ascii值
fmt.Printf("%T",s) //输出int32
双引号
双引号里面可以包含单个字符,也可以多个字符
双引号示例:
var s = "hello"
fmt.Println(s) //输出 hello
fmt.Printf("%T",s) //输出string
求字符串的长度:
var s = "hello杨"
fmt.Println(strings.Count(s,"")-1) //输出 6,表示长度为6
fmt.Println(len(s)) //输出 8 ,表示字节数为 8
字符串拼接
var s1 = "hello"
var s2 = "yangphp"
var s3 = s1+s2 //字符串拼接
fmt.Println(s3) //输出helloyangphp
反引号,多行字符串
反引号的字符串是表示原生的意思,里面的内容不会转义,会原样输出
示例1:被``包裹的字符被原样输出,包含换行都会输出
var s1 = "yangphp"
var str = `s1`+ s1 +`
bbbbbbbbbb
cccccccccc
dddddddddd
eeeeeeeeee`
fmt.Println(str)
输出结果如下:
可以看到 ``内的字符都原样输出了
示例2:通过+号,生成多行字符串
var s1 = "yangphp"
var str = "s1" + s1 + //注意+号必须在行末尾,不能在行首
"bbbbbbbbbb" +
"cccccccccc" +
"dddddddddd" +
"eeeeeeeeee"
fmt.Println(str)
输出结果如下:
可以看到,多行字符串变成了一行。
完结
但行好事,莫问前程!
本文来自博客园,作者:yangphp,转载请注明原文链接:https://www.cnblogs.com/ypeih/p/17266698.html