GoLang之string底层系列二(基础)

GoLang之string底层系列(string基础)

1.范围

image-20220305174626604

image-20220305174641638

2.介绍

image-20220120113854776

image-20220305174612730

3.加号拼接

image-20220124155759807

4.下标切割

a[1:3]的返回值仍然是字符串

image-20220106213117092

5.利用%c%v正确遍历字符串

因为UTF8编码下一个中文汉字由3~4个字节组成,所以我们不能简单的按照字节去遍历一个包含中文的字符串,否则就会出现下面输出中第一行的结果。

字符串底层是一个byte数组,所以可以和[]byte类型相互转换。字符串是不能修改的。字符串是由byte字节组成,所以字符串的长度是byte字节的长度。 rune类型用来表示utf8字符,一个rune字符由一个或多个byte组成。

func main() {
	var b string = "eggo世界"
	for _, r := range b {
		fmt.Printf("%v\n", r)
		fmt.Printf("%c\n", r)
	}
}

/*101
e    
103  
g    
103  
g    
111  
o    
19990
世   
30028
界   
*/

6.修改字符串

要修改字符串,需要先将其转换成[]rune或[]byte,完成后再转换为string。无论哪种转换,都会重新分配内存,并复制字节数组

image-20220120165402709

7.整数不能转化为字符串

image-20220210223226483

8.多行内容

image-20220120114154639

9.string型切片输出无引号

10.字符串转义符

image-20220120113958643

image-20220210224019376

11.参数传递不会改变值

package main
import "fmt"
func main() {
   name := "张三"
   fmt.Println(modify(name))
   fmt.Println(name)
}
func modify(s string) string {
   s = s + s
   return s
}
/*输出一下:
张三张三
张三
*/

/*基本类型举例子:以上是一个操作字符串的例子,通过打印的结果,可以看到,本来 name 的值并没有被改变,也就是说,我们传递的时一个副本,并且返回一个新创建的字符串。
*/

12.[]rune(str)

func main() {
	str := "李陆豪"
	fmt.Println(len(str)) //3
	fmt.Println(str[0:1]) //�
	fmt.Println(str[0:2]) //��
	fmt.Println(str[0:3]) //李

	runes := []rune(str)
	fmt.Println(len(runes))
	fmt.Println(runes[0:1]) //[26446]
	fmt.Println(runes[0:2]) //[26446 38470]
	fmt.Println(runes[0:3]) //[26446 38470 35946]

	fmt.Println(string(runes[0])) //李
	fmt.Println(string(runes[1])) //陆
	fmt.Println(string(runes[2])) //豪
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GoGo在努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值