登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> SoftHub关联区 >> 主题: string rune byte 的关系[zt 其实就是传统语言中的 string 与 char]     [回主站]     [分站链接]
string rune byte 的关系[zt 其实就是传统语言中的 string 与 char]
clq
浏览(574) - 2018-05-10 19:10:11 发表 编辑

关键字: golang

[2018-05-10 19:11:02 最后更新]
string rune byte 的关系[zt]

其实就是传统语言中的 string 与 char, 而 golang 中是没有 char 这个类型的,替代的是 rune 类型. 这是 golang 一个非常重要的概念。
--------------------------------------------------


http://www.golangtc.com/t/528cc004320b52227200000f


在Go当中 string底层是用byte数组存的,并且是不可以改变的。

例如 s:="Go编程" fmt.Println(len(s)) 输出结果应该是8因为中文字符是用3个字节存的。

len(string(rune('编')))的结果是3

如果想要获得我们想要的情况的话,需要先转换为rune切片再使用内置的len函数

fmt.Println(len([]rune(s)))

结果就是4了。

所以用string存储unicode的话,如果有中文,按下标是访问不到的,因为你只能得到一个byte。 要想访问中文的话,还是要用rune切片,这样就能按下表访问。

个人分类: Go语言




总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1