分享
  1. 首页
  2. 文章

Go语言学习(二):字符串

算命的Chalk · · 1025 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

在Go中字符串作为内建类型,和C语言是不一样的。C中没有字符串类型, 所有需要通过字符数组来表示字符串,并以指针来传递。

在Go中字符串是一个定长字符数组,所以当其创建之后就无法直接改变了。

1、错误的字符串长度的获取:

从字符串字面值看len(s)的结果应该是7,但在Golang中string类型的底层是通过byte数组实现的,在unicode编码中,中文字符占两个字节,而在utf-8编码中,中文字符占三个字节而Golang的默认编码正是utf-8.

2、正确的字符串长度获取:

那么问题来了,rune[ ]是个啥?

有时需要将一个类型转换为另一个类型。在 Go 中可以做到,不过有一些规则。首先,将一个值转换为另一个是由操作符(看起来像函数:byte())完成的,并且不是所有的转换都是允许的。

Go语言中 byte和 rune实质上就是 uint8和 int32类型。byte用来强调数据是raw data,而不是数字;而 rune用来表示 Unicode的 code point。所以需要遍历字符串中的字符。可以循环每个字节(仅在使用 US ASCII 编码字符串时与字符等价,而它们在 Go 中不存在!)。因此为了获得实际的字符,需要使用 rune 类型。

3、非解释性字符串:

在多行字符串处理时,需要留意分号的置入。栗子:

s := "I am coco"

+ "I am lolo"

会被转换成:

s := "I am coco";

+ "I am lolo";

4、字符串切片:

5、字符串遍历:

6、字符串修改:

7、字符串包Strings操作:


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:算命的Chalk

查看原文:Go语言学习(二):字符串

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
1025 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏