随心的博客

好记性不如个烂笔头,随心记录!

返回顶部

数据类型之字符串

前言:

String  字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的,本质是只读的字符型数组

Go语言的字符串UTF-8编码标识Unicode文本,当字符为 ASCII 码表上的字符时则占用 1 个字节,其它字符根据需要占用 2-4 个字节  (中文占3个字节)

正文:

字符串只能使用 双引号 包裹。

字符串默认是空字符串

字符串一旦赋值后,就不能修改。可以重新赋值,但是不能对字符串里面的单个字符进行修改

 

单引号,双引号,反引号区别:

单引号:

单引号里面只能包含一个字符,

默认是rune类型(等同于int32),输出值会自动修改为ASCII的数字值

当单引号定义多余1个字符,编辑器则会报错,无法编译

单引号示例:

var s = 'a'

fmt.Println(s) //输出97 ,为aascii

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)

输出结果如下:

 

可以看到,多行字符串变成了一行。

 

完结

 

posted @ 2023-03-28 21:00  yangphp  阅读(28)  评论(0编辑  收藏  举报