go rune 简要分析

go 的成长之路 专栏收录该内容
13 篇文章 1 订阅

今天看golang代码看到一个单词 rune ,熟悉而陌生。之前学习go并没有过多注意这个“神秘符号”。
rune在golang中是int32的别名,在各个方面都与int32相同。
被用来区分字符值和整数值。
做几个小测试

	s:="hello你好"
	fmt.Println(len(s))//输出长度为11
	fmt.Println(len([]rune(s)))//输出长度为7
	s="你好"
	fmt.Println(len(s))//输出长度为6
	fmt.Println(len([]rune(s)))//输出长度为2
	s="你"
	fmt.Println([]byte(s))//输出长度为6
	fmt.Println(rune('你'))//输出20320

通过上述代码可以将rune理解为 一个 可以表示unicode 编码的值int 的值,称为码点(code point)。只不过go语言把这个码点抽象为rune。
最后,rune 就相当于java中 char类型,只不过go作为国际化语言,char 只有2个字节,go本身是utf-8编码的,char不能满足要求,所有go就有rune这个类型。
想深入了解 可以点击 https://blog.golang.org/strings

展开阅读全文
  • 3
    点赞
  • 1
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值