一.整数类型
简单的来说,就是用于存放整数值的,比如:0,-1,2345等
整数的使用细节
1).go各个整数类型分:有符号和无符号, int uint 的大小和系统有关
2).go的整型默认声明为int型
3).如何在程序中查看某个变量的字节大小和数据类型(使用较多)
4).go程序中整型变量在使用时,遵守保小不保大原则,即:在保证程序正确运行下,尽量使用占用空间小的数据类型(如:年龄)
5).bit:计算机中的最小存储单位.byte:计算机中基本存储单元.1byte = 8 bit
二.浮点类型
go的浮点类型可以表示一个小数,比如:123.4,2.3,0.12等
说明:
1).浮点数在机器中存放形式:浮点数 = 符号位 + 指数位 + 尾数位, 说明:浮点数都是有符号的
3.23
11100000111.111111111111111100000
2).尾数部分可以丢失,造成精度缺失,-123.00000901
3).浮点类型的存储分为三个部分:符号位 + 指数位 + 尾数位,在存储过程中,精度会有丢失
注意:float64的精度比float32的要准确;如果我们要保存一个精度高的数,则应该选择float64
浮点数的使用细节
1).go浮点数类型有固定的范围和字段长度,不受具体OS(操作系统)的影响
2).go的浮点数默认声明为float64类型
3).浮点型常量有两种表示形式
(1).十进制数形式: 5.12 .421(必须有小数点)
(2).科学计数法形式: 5.1234e2 = 5.12 * 10的2次方; 5.12E-2 = 5.12/10的2次方
4).通常情况下,应该使用float64,因为它比float32更精确,开发中,推荐使用float64
三.字符类型
go中并没有专门的字符类型,如果要单独存储单个字符(字母),一般使用byte来保存.
字符串就是一串固定长度的字符连接起来的字符序列.go的字符串是由单个字节连接起来的,也就是说对于传统的字符串是由字符组成的,而go的字符串不同,它是由字节组成(官方将string归属到基本数据类型)
案例:
var c1 byte = 'a'
var c2 byte = '0'
var c3 byte = '你'
var c4 byte = 97
对上面代码的说明:
1).如果我们保存的字符在ASCII表的,比如:[0-9,a-z,A-Z]直接可以保存到byte
2).如果我们保存的字符对应码值大于255,这时我们可以考虑使用int类型保存
3).如果我们需要按照字符的方式输出,这时我们需要格式化输出,即fmt.Printf("%c",c1)
字符类型的使用细节
1).字符常量是用单引号('')括起来的单个字符,eg:var a1 byte = 'a' var a2 byte = '中' var a3 byte = '8'
2).go中允许使用转义字符'\'来将后面的字符转变为特殊字符型常量,eg:var c1 char = '\n','\n'表示换行符
\a 匹配响铃符 (相当于 \x07)
注意:正则表达式中不能使用 \b 匹配退格符,因为 \b 被用来匹配单词边界,
可以使用 \x08 表示退格符。
\f 匹配换页符 (相当于 \x0C)
\t 匹配横向制表符(相当于 \x09)
\n 匹配换行符 (相当于 \x0A)
\r 匹配回车符 (相当于 \x0D)
\v 匹配纵向制表符(相当于 \x0B)
\123 匹配 8 進制编码所代表的字符(必须是 3 位数字)
\x7F 匹配 16 進制编码所代表的字符(必须是 3 位数字)
\x{10FFFF} 匹配 16 進制编码所代表的字符(最大值 10FFFF )
\Q...\E 匹配 \Q 和 \E 之间的文本,忽略文本中的正则语法
\\ 匹配字符 \
\^ 匹配字符 ^
\$ 匹配字符 $
\. 匹配字符 .
\* 匹配字符 *
\+ 匹配字符 +
\? 匹配字符 ?
\{ 匹配字符 {
\} 匹配字符 }
\( 匹配字符 (
\) 匹配字符 )
\[ 匹配字符 [
\] 匹配字符 ]
\| 匹配字符 |
3).go语言的字符使用UTF-8编码,英文字母1个字节,汉字3个字节
4).在go中,字符的本质是一个整数,直接输出时,是该字符对应的UTF-8编码的码值
5).可以直接给某个变量赋一个数字然后按格式化输出时%c,会输出该数字对应的unicode字符
6).字符类型是可以进行运算的,相当于一个整数,因为它都对应有unicode码
字符类型本质的探讨
1).字符型存储到计算机中,需要将字符对应的码值(整数)找出来存储,读取
2).字符和码值的对应关系是通过字符编码表决定的(规定好的)
3).go语言的编码都统一成UTF-8,非常方便
四.布尔类型
基本介绍:
1).布尔类型也叫bool类型,bool类型只允许取值true和false
2).bool类型占一个字节
3).bool类型适用于逻辑运算,一般用于程序流程控制
if条件控制语句
for循环控制语句
五.字符串类型
字符串就是一串固定长度的字符连接起来组成的字符序列.
go的字符串是由单个字符连接起来的
go的字符串的字节使用UTF-8编码标识Unicode文本
注意事项和使用细节
1). go的字符串的字节使用UTF-8编码标识Unicode文本,这样go统一使用UTF-8编码,乱码问题不会再困扰程序员了
2).字符串一旦赋值了,字符串就不能修改了,在go语言中字符串是不可变的
var str string = "hello"
str[0] = 'y' // 报错,不能修改str
fmt.Println(str)
3).字符串的两种表示方式
(1).双引号,会识别转义字符
(2).反引号,以字符串的原生形式输出,包括换行和特殊字符,可以实现防止攻击,输出源代码等小效果
4).字符串的拼接
5).当一行字符串太长时, 需要使用到多行字符串,可以如下处理: