首页> 基础笔记 >GoLang基础学习 >基础知识 基础知识
GoLang数据类型-字符类型介绍
作者:小萝卜 2023-03-29 【 GoLang 】 浏览 530
简介Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用 byte来保存。 字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。也 就是说对于传统的字符串是由字符组成的,而 Go的字符串不同,它是由字节组成的。
基本介绍
Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用 byte来保存。
字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。也就是说对于传统的字符串是由字符组成的,而 Go的字符串不同,它是由字节组成的。
案例演示
//演示golang中字符类型使用
func main() {
var c1 byte = 'a'
var c2 byte = '0' //字符的0
//当我们直接输出byte值,就是输出了的对应的字符的码值
// 'a' ==>
fmt.Println("c1=", c1)
fmt.Println("c2=", c2)
//如果我们希望输出对应字符,需要使用格式化输出
fmt.Printf("c1=%c c2=%c\n", c1, c2)
//var c3 byte = '北' //overflow溢出
var c3 int = '北' //overflow溢出
fmt.Printf("c3=%c c3对应码值=%d\n", c3, c3)
}
对上面代码说明
1)如果我们保存的字符在 ASCII表的,比如[0-1, a-z,A-Z..]直接可以保存到 byte
2)如果我们保存的字符对应码值大于 255,这时我们可以考虑使用 int类型保存
3)如果我们需要安装字符的方式输出,这时我们需要格式化输出,即 fmt.Printf(“%c”, c1)..
字符类型使用细节
1)字符常量是用单引号('')括起来的单个字符。例如:var c1 byte = 'a' byte = '9'
2) Go中允许使用转义字符 '\’来将其后的字符转变为特殊字符型常量。例如:var c3 char =‘\n’ // '\n'表示换行符 var c2 int = '中' var c3
3) Go语言的字符使用 UTF-8编码 ,如果想查询字符对应的 utf8 码值http://www.mytju.com/classcode/tools/encode_utf8.asp
英文字母-1个字节汉字-3个字节
4)在 Go中,字符的本质是一个整数,直接输出时,是该字符对应的 UTF-8编码的码值。
5)可以直接给某个变量赋一个数字,然后按格式化输出时%c,会输出该数字对应的 unicode字符
//可以直接给某个变量赋一个数字,然后按格式化输出时%c,会输出该数字对应的unicode 字符
var c4 int = 22269 // 22269 -> '国' 120->'x'
fmt.Printf("c4=%c\n", c4)
6)字符类型是可以进行运算的,相当于一个整数,因为它都对应有 Unicode码.
//字符类型是可以进行运算的,相当于一个整数,运输时是按照码值运行
var n1 = 10 + 'a' // 10 + 97 = 107
fmt.Println("n1=", n1)
字符类型本质探讨
1)字符型存储到计算机中,需要将字符对应的码值(整数)找出来
存储:字符--->对应码值---->二进制-->存储
读取:二进制---->码值 ---->字符 -->读取
2)字符和码值的对应关系是通过字符编码表决定的(是规定好)
3) Go语言的编码都统一成了 utf-8。非常的方便,很统一,再也没有编码乱码的困扰了
很赞哦! (0)