Go的变量

1,数据类型

在这里插入图片描述
程序中+号的使用
(1)当左右两边都是数值型时,则做加法运算
(2)当左右两边都是字符串,则做字符串拼接
在这里插入图片描述

2,变量声明

(1)第一种:指定变量类型,声明后若不赋值,使用默认值。
在这里插入图片描述

(2)第二种:根据值自行判定变量类型(类型推导
在这里插入图片描述
(3)第三种:省略var,注意:=左侧的变量不应该是已经声明过的,否则会导致编译错误
在这里插入图片描述
(4)第四种:多变量声明
局部变量
在这里插入图片描述
全局变量
在这里插入图片描述

3,整形类型

在这里插入图片描述
在这里插入图片描述
(1)Golang 各整数类型分:有符号和无符号,int uint的大小和系统有关。
(2)Golang的整型默认声明为int型
在这里插入图片描述
(3)如何在程序查看某个变量的字节大小和数据类型(使用较多)
在这里插入图片描述

4,小数类型

在这里插入图片描述
(1)Golang浮点类型有固定的范围和字段长度,不受具体OS(操作系统)的影响。
(2)Golang 的浮点型默认声明为float64类型。
在这里插入图片描述
(3)浮点型常量有两种表示形式十进制数形式:如:5.12
.512(必须有小数点)
科学计数法形式:如:5.1234e2 =5.12* 10的2次方
5.12E-2=5.12/10的2次方
在这里插入图片描述
在这里插入图片描述
(4)通常情况下,应该使用float64 ,因为它比 float32更精确。

5,字符类型

Golang 中没有专门的字符类型,如果要存储单个字符(字母),一般使用byte来保存。
字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。也就是说对于传统的字符串是由字符组成的,而Go的字符串不同,它是由字节组成的。
在这里插入图片描述
对上面代码说明
1)如果我们保存的字符在ASCII表的,比如[O-1, a-z,A-Z…]直接可以保存到byte
2)如果我们保存的字符对应码值大于255,这时我们可以考虑使用int类型保存
3)如果我们需要实现字符的方式输出,这时我们需要格式化输出,即fmt.Printf(%c", c1)…

字符类型本质探讨
1)字符型存储到计算机中,需要将字符对应的码值(整数)找出来存储:字符—>对应码值---->二进制–>存储
读取:二进制---->码值---->字符–>读取

2)字符和码值的对应关系是通过字符编码表决定的(是规定好),英文字母-1个字节汉字-3个字节

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

6,string类型

(1)字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。Go语言的字符串的字节使用UTF-8编码标识Unicode文本
在这里插入图片描述
(2)字符串一旦赋值了,字符串就不能修改了:在Go中字符串是不可变的。
在这里插入图片描述
(3)字符串的两种表示形式
1)双引号,会识别转义字符
2)反引号,以字符串的原生形式输出,包括换行和特殊字符,可以实现防止攻击、输出源代码等效果
3)字符串拼接方式
在这里插入图片描述
4)当一行字符串太长时,需要使用到多行字符串,可以如下处理
在这里插入图片描述

7,默认值

在这里插入图片描述

8,基本数据类型的相互转换

(1)Go中,数据类型的转换可以是从表示范围小–>表示范围大,也可以范围大—>范围小
(2)被转换的是变量存储的数据(即值),变量本身的数据类型并没有变化!
在这里插入图片描述
在这里插入图片描述
(3)在转换中,比如将int64转成int8 【-128—127】,编译时不会报错,只是转换的结果是按溢出处理,和我们希望的结果不一样。因此在转换时,需要考虑范围.

在这里插入图片描述
常见错误
在这里插入图片描述

9,基本数据类型和string的转换

基本类型转string类型
fmt.Sprintf(“%参数”,表达式)
在这里插入图片描述
string类型转基本数据类型·
在这里插入图片描述
在这里插入图片描述
注意事项
在将String类型转成基本数据类型时,要确保String 类型能够转成有效的数据,比如我们可以把"123",转成一个整数,但是不能把"hello”转成一个整数,如果这样做,Golang直接将其转成0 ,其它类型也是一样的道理. float => 0 bool => false
在这里插入图片描述

10,指针

(1)获取变量的地址,用&,比如:var num int,获取num 的地址:&num分析一下基本数据类型在内存的布局。
在这里插入图片描述
(2)指针类型,指针变量存的是一个地址,这个地址指向的空间存的才是值比如: var ptr *int = &num。
在这里插入图片描述
(3)获取指针类型所指向的值,使用: *,比如: var ptr int,使用ptr 获取 ptr指向的值。
在这里插入图片描述
(4)一个案例
在这里插入图片描述

11,值类型和引用类型

(1)值类型:基本数据类型 int 系列, float系列, bool, string 、数组和结构体struct。值类型:变量直接存储值,内存通常在栈中分配。
在这里插入图片描述

(2)引用类型:指针、slice切片、map、管道chan、interface等都是引用类型。引用类型:变量存储的是一个地址,这个地址对应的空间才真正存储数据(值),内存通常在堆上分配,当没有任何变量引用这个地址时,该地址对应的数据空间就成为一个垃圾,由GC来回收。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值