Golang 学习之旅------第二章 数据类型

一、数据类型

1.基本数据类型介绍
(1)每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间。
(2)分类:
在这里插入图片描述
2.整数类型
2.1 基本介绍
简单的说,就是用于存放整数值的,比如0,-1,2345等等。

2.2 整数的类型介绍
(1)有符号的
在这里插入图片描述
(2)无符号的
在这里插入图片描述
(3)其它说明
在这里插入图片描述
(4)示例如图所示:
在这里插入图片描述
在这里插入图片描述

2.3 整型的使用细节
(1).Golang各整数类型分:有符号和无符号,int和uint的大小与系
统位数有关
(2).Golang的整型默认声明为int型
(3).如何在程序中查看某个变量的字节大小和数据类型
(4).Golang程序中整型变量在使用时,遵守保小不保大的原则,
即:在保障程序正确运行下,尽量使用占用空间小的数据类型
(5).bit:计算机中的最小存储单位。byte:计算机中基本存储单
元。1byte = 8 bit。
(6).示例代码如下:
在这里插入图片描述

3.小数类型/浮点型
3.1 基本介绍
小数类型就是用于存放小数的。

3.2 小数类型分类
(1).类型分类
在这里插入图片描述
(2).总结
a.关于浮点数在机器中存放形式的简单说明,浮点数=符号位+指数位+尾数位(浮点数都是有符号的)
b.尾数部分可能丢失,造成进度损失
说明:
b1.float64的精度比float32的精度要准确
b2.如果我们要保存一个高精度的数,请选用float64
b3.浮点型的存储分为三部分:符号位+指数位+尾数位,在存储过程中会有精度丢失

(3)示例代码如图所示:
在这里插入图片描述

3.3 浮点型的使用细节
(1).Golang浮点型有固定的范围和字段长度,不受具体OS(操作系统)的影响

(2).Golang的浮点型默认声明为float64类型

(3).浮点型常量有两种表示形式:
a.十进制数形式:如5.12 (必须有小数点)
b.科学计数法形式:如5.1234e2 = 5.1234 *10的2次方 5.12E-2 = 5.12除以10的-2次方

(4).通常情况下,应该使用float64,因为它比float32更精确
(5).示例代码如下:
在这里插入图片描述

4.字符类型
4.1 基本介绍
(1).Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用byte来保存。

(2).字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。也就是说对于传统的字符串是由字符组成的,而GO的字符串不同,它是由字节组成。
(3).示例代码:
在这里插入图片描述
(4).说明:
a.如果我们保存的字符在ASCII表的,比如【0-9,a-z,A-Z】直接可以保存到byte
b.如果我们保存的字符对应码值大于255,这时我们可以考虑使用int类型保存
c.如果我们需要按照字符的方式输出,这时我们需要格式化输出,即fmt.Printf(“%c”,c1)

4.2 字符类型使用细节
(1).字符常量是用单引号(‘’)括起来的单个字符。例如:var c1 byte = ‘a’ var c2 int =‘中’ var c3 byte = ‘9’

(2).Go中允许使用转义字符’‘来将其后的字符转变为特殊字符型常量.。例如 var c4 char = ‘\n’ //’\n’表示换行符

(3).Go语言的字符使用UTF-8编码,如果想查询字符对应的UTF-8码值,请查看:
http://www.mytju.com/classcode/tools/encode_utf8.asp
英文字母对应1个字节;汉字对应3个字节

(4).在Go中,字符的本质是一个整数,直接输出时,是该字符对应的UTF-8编码的码值

(5).可以直接给某个变量赋一个数字,然后格式化输出%c,会输出该数字对应的unicode字符

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

(7).代码示例如下:
在这里插入图片描述
4.3 字符类型本质探讨
(1).字符型存储到计算机中,需要将字符对应的码值(整数)找出来
存储:字符----->对应码值----->二进制-------->存储
读取:二进制------>码值------->字符------------>读取

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

(3).Go语言的编码都统一成了utf-8。非常方便、统一,再也没有编码乱码的困扰了

5.布尔类型
5.1 基本介绍
(1).布尔类型也叫bool类型,bool类型数据只允许取值True和False
(2).bool类型的占用1个字节
(3).bool类型适用于逻辑运算,一般用于程序流程控制:如if条件控制语句,for循环控制语句

6.string数据类型
6.1 基本介绍
(1).字符串就是一串固定长度的字符连接起来的字符序列。GO的字符串是由单个字节连接起来的。GO语言的字符串的字节使用UTF-8编码标识Unicode文本
(2).示例如图所示:
在这里插入图片描述
6.2 string使用注意事项和细节
(1).Go语言的字符串的字节使用UTF-8编码标识Unicode文本,这样Golang统一使用UTF-8编码,中文乱码问题不会在困扰程序员

(2).字符串一旦赋值了,字符串就不能修改了:在Go中字符串是不可变

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

(4).字符串的拼接方式
(5).当一行字符串太长时,需要使用到多行字符串,可以如下图处理
(6).示例代码如图所示:
在这里插入图片描述

7.基本数据类型的默认值
7.1 基本介绍
在go中,数据类型都有一个默认值,当程序员没有赋值时,就会保留默认值,在go中,默认值又叫零值

7.2 基本数据类型的默认值如下:
在这里插入图片描述
7.3 示例如图所示:
在这里插入图片描述

8.基本数据类型的相互转换
8.1 基本介绍
(1).GO在不同类型的变量之间赋值时需要显式转换,也就是说Golang中数据类型不能自动转换。
(2).基本语法
表达式T(v)将值v转换为类型T
T:代表数据类型,比如int32,int64,float32等等
v:就是需要转换的变量
(3)示例代码如下:
在这里插入图片描述

8.2 基本数据类型相互转换的注意事项
(1).被转换的是变量存储的数据(即值),变量本身的数据类型并没有变化
(2).GO中,数据类型的转换可以是从 表示范围小—>表示范围大,也可以 范围大—>范围小
(3).在转换中,比如将int64 转成int8 【-128—127】,编译时不会报错,只是转换的结果时按溢出处理,和我们希望的结果不一样,因此在转换时,需要考虑范围。
(4).示例代码如下:
在这里插入图片描述
9.基本数据类型和string的转换
9.1 基本介绍
在程序开发中,我们经常将基本数据类型转成 string,或者将 string 转成基本数据类型

9.2 基本数据类型转换成string数据类型
(1)方法1
a.基本介绍
fmt.Sprintf(“%参数”,表达式)
函数的介绍:参数需要和表达式的数据类型相匹配,fmt.Sprintf()…会返回转换后的字符串
在这里插入图片描述
b.示例代码如下:
在这里插入图片描述
(2)方法2
a.基本介绍
使用strconv包的函数
在这里插入图片描述
b.示例代码如下:
在这里插入图片描述
9.3 string数据类型转换成基本数据类型
(1).基本介绍
使用strconv包的函数
在这里插入图片描述
(2).string转基本数据类型的注意事项
a.基本介绍
在将string类型转成基本数据类型时,要确保string类型能够转成有效的数据。比如我们可以把”123“转成一个整数,但是不能把”hello“转成一个整数,如果这样做,Golang直接将其转成0,其它类型也是一样的道理。
float ===>0
bool ==>false

(3).示例代码如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值