Golang基础语法:字符与字符串(三)

字符

字符基本介绍

? Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用byte来保存。这点不同于c和c++使用char来存储。

? Golang 使用的是UTF-8的Unicode编码,可以很方便地表示汉字,如果有小伙伴学过python就知道,python源代码上面总是有一行 \# -*- coding: UTF-8 -*-代码,这行代码就是引入了中文编码,这样你在控制台打印中文字符的时候才不会报错,而Golang是21世纪的新语言,在开发之初就考虑到了这样的问题,开发者可以不用考虑编码问题,大胆地输出吧!

? 字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。也就是说对于传统的字符串是由字符组成的,而Go的字符串不同,它是由字节组成的。

以上代码输出为:

以上代码需要注意的是:

1、如果我们保存的字符在ASCII表的,比如[0-1, a-z,A-Z…]直接可以保存到byte
2、如果我们保存的字符对应码值大于255,这时我们可以考虑使用int类型保存
3、如果我们需要安装字符的方式输出,这时我们需要格式化输出,即fmt. Printf(“%c", c1)

字符类型的使用细节

1、字符常量是用单引号(")括起来的单个字符。例如: varcl byte='a' varc2 int='’var c3 byte= '9'
2、 Go中允许使用转义字符’ 来将其后的字符转变为特殊字符型常量。例如: varc3 char =‘n’,’\n’表示换行符
3、Go语言的字符使用UTF-8编码,如果想查询字符对应的utf8码值,请打开 http://www.mytju.com/classcode/tools/encode_utf8.asp
需要我们注意的是:英文字母是1个字节,而汉字是3 个字节
4、在Go中,字符的本质是一个整数,直接输出时,是该字符对应的UTF-8编码的码值。
5、可以直接给某个变量赋一个数字,然后按格式化输出时%c,会输出该数字对应的unicode字符
如:

6、字符类型是可以进行运算的,相当于一个整数,因为它们都对应有Unicode码.

对于字符类型的本质的探讨

1、字符型存储到计算机中,需要将字符对应的码值(整数)找出来
存储: 字符 --> 对应码 —> 二进制 -> 存储
读取: 二进制 --> 码值 —> 字符 -> 读取
2、字符和码值的对应关系是通过字符编码表决定的(是规定好)
3、Go语言的编码都统一成了 utf-8。 非常的方便,很统一,小伙伴们再也没有编码乱码的困扰了~

字符串string类型

基本结束

字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。Go语言的字符串的字节使用UTF-8编码标识Unicode文本

例如:

输出为:

string使用注意事项和细节

1、Go语言的字符串的字节使用UTF-8编码标识Unicode文本,这样Golang统一使用 UTF-8编码,中文乱码问题不会再困扰程序员。
2、字符串一旦赋值了,字符串就不能修改了:在Go中字符串是不可变的。

3、字符串的两种表示形式

  • 双引号,会识别转义字符.
  • 反引号,以字符串的原生形式输出,包括换行和特殊字符,可以实现防止攻击、输出源代码等效果

例子:

4、字符串拼接方式

例子:

5、当一行字符串太长时,需要使用到多行字符串,可以如下处理

所有文章首发平台是微信公众号-极客印记,同步发布到CSDN,简书,掘金等平台博客–十安辰,喜欢的话,记得微信扫码关注我哦
极客印记