字符类型

字符类型

golang中没有专门的字符类型,如果要存储单个字符(字母),一般用byte来保存

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

package main
import "fmt"
//演示golang中字符类型使用
func main(){
	var c1 byte = 'a'
	var c2 byte = '0'
	//当我们直接输出byte值,就是输出了对应的字符的码值
	fmt.Println("c1=",c1)
	fmt.Println("c2=",c2)
	//如果我们希望输出对应的字符,需要使用格式化输出
	fmt.Printf("c1=%c c2=%c\n",c1,c2)
	//var c3 byte = '北' //overflow溢出
	var c3 int = '北'
	fmt.Printf("c3=%c",c3)
}

输出

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

字符类型使用细节

  1. 字符常量是用单引号(' ')括起来的单个字符。例如
var c1 byte = 'a'
var c2 int = '中'
var c3 byte = '9'
  1. go中允许使用转义字符'\'来将其后的字符转变为特殊字符型常量。例如
var c3 char = '\n'    //'\n'表示换行符
  1. go语言的字符使用UTF-8编码,英文字母一个字节,汉字三个字节
  2. 在go中,字符的本质是一个整数,直接输出时,时该字符对应的UTF-8编码的码值
  3. 可以直接给某一个变量敷一个数字,然后按格式化输出时%c,会输出该数字对应的unicode字符
  4. 字符类型可以进行运算,相当于一个整数,因为他都对应有Unicode码

字符类型本质探讨

  1. 字符型存储到计算机中,需要将字符对应的码值(整数)找出来

    ​ 存储:字符-->对应码值-->二进制-->存储

    ​ 读取:二进制-->码值-->字符-->读取

  2. 字符和码值的对应关系是通过字符编码表决定的(是规定好的)

  3. go语言的编码都统一成了utf-8,和其他编程语言来说,非常方便,很统一

上一篇:集合框架概述、体系共性功能、方法演示


下一篇:POJ1222熄灯问题C++