golang rune类型简介
定义
rune关键字,它是int32的别名(-231~231-1),对于byte(-128~127),可表示的字符更多。
官方的解释如下:
// 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.
//int32的别名,几乎在所有方面等同于int32
//它用来区分字符值和整数值
type rune = int32
实例
package mainimport ("fmt""unicode/utf8"
)func main() {var chinese = "我是中国人, I am Chinese"fmt.Println("chinese length", len(chinese))fmt.Println("chinese word length", len([]rune(chinese)))fmt.Println("chinese word length", utf8.RuneCountInString(chinese))
}
输出:
// 注意在golang中一个汉字占3个byte
chinese length 31
chinese word length 19
chinese word length 19
golang中string底层是通过byte数组实现的。中文字符在unicode下占2个字节,在utf-8编码下占3个字节,而golang默认编码正好是utf-8。
如果我们预期想得到一个字符串的长度,而不是字符串底层占得字节长度,该怎么办呢,实例如下:
package mainimport ("fmt""unicode/utf8"
)func main() {var str = "hello 世界"//golang中string底层是通过byte数组实现的,直接求len 实际是在按字节长度计算 所以一个汉字占3个字节算了3个长度fmt.Println("len(str):", len(str))//以下两种都可以得到str的字符串长度//golang中的unicode/utf8包提供了用utf-8获取长度的方法fmt.Println("RuneCountInString:", utf8.RuneCountInString(str))//通过rune类型处理unicode字符fmt.Println("rune:", len([]rune(str)))
}
输出结果:
golang rune类型简介相关推荐
- golang error类型 简介
error类型是go语言的一种内置类型,使用的时候不用特定去import,他本质上是一个接口, type error interface{Error() string //Error()是每一个订制的 ...
- golang中的rune类型
前言 在学习golang基础的时候,发现有个叫rune的的数据类型,因为本人之前一直学习的是Java相关的知识,这里对于golang里面的rune类型确实感到很不理解.因此,特写这篇文章一探究竟. 正 ...
- go语言的rune类型
在学习golang基础的时候,发现有个叫rune的的数据类型,当时不理解这个类型的意义. 查询,官方的解释如下: // rune is an alias for int32 and is equiva ...
- bool类型数组转换成一个整数_Go 学习笔记 02 | 基本数据类型以及 byte 和 rune 类型...
一.基本数据类型 unsafe.Sizeof() 查看不同长度的整型在内存中的存储空间. 类型转换,高位向低位转换要注意溢出. 数字字面量语法. 64 位系统中 Go 语言中浮点数默认是 float6 ...
- go - rune类型
一.简介 rune类型是Go语言的一种特殊数字类型. rune是类型int32的别名,在所有方面都等急啊于它,用来区分字符值跟整数值. Go语言通过rune处理中文,支持国际化多语言. 字符串由字符组 ...
- 大家一起学Golang——Go语言简介与安装
大家一起学Golang --Go语言简介与安装 go语言简介 Go语言是有google公司推出的一门编程语言,是开源,静态编程语言,语法简洁,天生支持并发. 2007年由Robert Grieseme ...
- golang枚举类型 - iota用法拾遗
在c#.java等高级语言中,经常会用到枚举类型来表示状态等.在golang中并没有枚举类型,如何实现枚举呢?首先从枚举的概念入手. 1.枚举类型定义 从百度百科查询解释如下:http://baike ...
- golang 获取struct类型_聊聊golang的类型断言
序 本文主要研究一下golang的类型断言 类型断言 x.(T) 断言x不为nil且x为T类型 如果T不是接口类型,则该断言x为T类型 如果T类接口类型,则该断言x实现了T接口 实例1 func ma ...
- 《Abaqus GUI程序开发指南(Python语言)》——2.5 动态类型简介
本节书摘来自异步社区<Abaqus GUI程序开发指南(Python语言)>一书中的第2章,第2.5节,作者: 贾利勇 , 富琛阳子 , 贺高 , 周正光 更多章节内容可以访问云栖社区&q ...
最新文章
- Google排名第一的技术,引数十万人关注!网友:差点我就放弃了!
- 增强现实:一场正在到来的医疗革命
- BT5下用ncrack破解3389
- 切换数据库_硬核数据库postgres使用pgpool完成主备自动切换,快来盘它
- CORS预检请求详谈
- php class variable,PHP中的變量類擴展 - 是否可能?
- UE4之Import源码解析
- 鸿蒙系统可以安装teams吗,鸿蒙致命弱点被曝光!不能装这个软件,80%用户将望而却步!...
- 【POJ 2104】【主席树模板题】K-th Number
- c# 小写金额转大写
- C语言大作业:车辆信息管理系统
- Thinkphp仿众图网图片素材下载站源码+自适应手机端
- Win系统 - 微星 GS65 笔记本电脑开机黑屏
- Java 读取excel文件并导入数据库
- google play连接超时_谷歌Play多年来一直传播高级安卓恶意软件,并曾被用于间谍活动!...
- 关于三菱触摸屏GT Designer3 仿真软件创建工程
- 笔记本电脑切换不到投影仪 问题 解决方法
- 如何在Oracle官网下载JDK8u202
- SpringBoot2后端项目-验证码图片生成
- 太棒了,Python和算法简直是绝配