项目中看到[]rune,掘金学习一下子,豁然开朗

文章介绍了Go语言中处理字符串的方式,特别是如何遍历字符串并获取每个字符的Unicode码点。通过示例代码展示了如何使用`rune`类型来处理Unicode,解释了`rune`作为内置类型等同于`int32`,用于表示Unicode字符。
摘要由CSDN通过智能技术生成

遇到不懂就搜搜,做个笔记好复习

Runes

字符串是字节的集合。我们可以使用 for 循环遍历字符串的字节:

package main

import "fmt"

func main() {
	s := "我爱 Golang"
	for _, v := range s {
		fmt.Printf("Unicode code point: %U - character '%c' - binary %b - hex %X - Decimal %d\n", v, v, v, v, v)
	}
}
复制代码

输出:

Unicode code point: U+6211 - character '我' - binary 110001000010001 - hex 6211 - Decimal 25105
Unicode code point: U+7231 - character '爱' - binary 111001000110001 - hex 7231 - Decimal 29233
Unicode code point: U+0020 - character ' ' - binary 100000 - hex 20 - Decimal 32
Unicode code point: U+0047 - character 'G' - binary 1000111 - hex 47 - Decimal 71
Unicode code point: U+006F - character 'o' - binary 1101111 - hex 6F - Decimal 111
Unicode code point: U+006C - character 'l' - binary 1101100 - hex 6C - Decimal 108
Unicode code point: U+0061 - character 'a' - binary 1100001 - hex 61 - Decimal 97
Unicode code point: U+006E - character 'n' - binary 1101110 - hex 6E - Decimal 110
Unicode code point: U+0067 - character 'g' - binary 1100111 - hex 67 - Decimal 103
复制代码

“我爱 Golang”,前两个字符是中文。

程序将遍历字符串的每个字符。在 for 循环中 v 的类型是runerune 是一个内置类型,定义如下:

// rune is an alias for int32 and is equivalent to int32 in all ways. It is
// used, by convention, to distinguish character values from integer values.
type rune = int32
复制代码

一个Rune代表一个 Unicode 码点。 - Unicode 代码点是数值。 - 按照惯例,它们总是用以下格式表示:“U+X”,其中 X 是代码点的十六进制表示。 X 应该有四个字符。 - 如果 X 少于四个字符,我们添加零。 - 例如:字符“o”的代码点等于 111(十进制)。十六进制的 111 写成 6F。十进制码点为 U+006F 要以常规格式打印代码点,你可以使用格式动词“%U”。

 

你也可以使用单引号来创建一个rune

package main

import "fmt"

func main(){
    var aRune rune = 'Z'
    fmt.Printf("Unicode Code point of '%c': %U\n", aRune, aRune)
}


来源-稀土掘金-Zioyi
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值