Go中变量

4 篇文章 0 订阅

变量的概念

变量是程序的基本组成单位,相当于内存中一个数据存储空间的表示,通过变量名可以访问到变量值

sum , sub 都是变量

变量使用的基本步骤

1.声明变量(定义变量)

2.赋值

3.使用变量

声明变量:var 变量名 数据类型

var num1 float32表示一个单精度类型的小数,变量名是num1

初始化变量:在声明变量的时候就给值

var a int = 45 这就是初始化变量

使用细节,如果声明时就直接给值,可省略数据类型

var b = 40 / b := 40

给变量赋值:比如先声明变量:var num int //默认0

然后,再给值num = 780 ; 这就是给变量赋值

变量使用注意事项

1.变量表示内存中的一个存储区域

2.该区域有自己的名称(变量名)和类型(数据类型)

3.Golang变量使用的三种方式

1)指定变量类型, 声明后若不赋值,使用默认值

2)根据值自行判断变量类型(类型推导)

3)省略var,注意: =左侧的变量不应该是已经声明过的,否则会导致编译错误

4.多变量声明

在编程中, 有时我们需要一次性声明多个变量,Golang也提供这样的语法

5.全局变量的声明

在Go函数外定义的变量的声明

6.变量在某一区域的数据值可以在同一类型范围内不断变化

7.变量在同一个代码块内不能重名

8.变量=变量名+值+数据类型(变量三要素)

程序中+号的使用

1.当左右两边都是数值型时,做加法运算

2.当左右两边都是字符串类型时,则做字符串拼接

变量数据类型

基本数据类型

数值型i

整数类型int,int8,uint8,byte

浮点类型float32,float64

字符型(没有专门的字符型,使用byte来保存单个字母的字符)

布尔型bool

字符串string

派生/复杂数据类型

指针Pointer

数组

结构体(struct)

管道(channel)

函数(也是一种类型)

切片(slice)

接口(ineterface)

map

整数的各个类型

有符号的整数类型 int8 -2^7 ~ 2^7-1 ; rune范围与int32一样 4字节

无符号的整数类型 uint8 0 ~ 2^8-1 ; byte与unit8表示范围一样 8位

查看一个变量的数据类型

fmt.Printf(%T) 用于做格式化输出

整型变量在使用时,保小不保大原则,尽量使用小的数据类型

浮点型

用于存放小数

小数类型

1.单精度float32

2.双精度float64

说明

1.浮点数 = 符号位+指数位+尾数位,在储存过程中,精度可能会损失

2.尾数部分可能丢失,造成精度损失,-123.0000901

3.float64的精度比float32更高

细节

1.Golang的浮点有固定的范围和字段长度,不受OS影响

2.Golang浮点型默认为float64

3.浮点型常量有两种表示形式

十进制数形式,如:5.12 .512(必须有小数点)

科学计数法形式,如:5.12e2 = 5.12*10的2次方 5.12E-2 = 5.12/10的2次方

4.通常情况下,应该使用float64,因为它比float32更精确

字符类型

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

字符串是遗传固定长度的字符连接起来的字符序列,Go的字符串时由单个字节连接起来的

传统的字符串是由字符组成的,go的字符串是由字节组成的

1.0-1 , A-Z可以直接保存到byte

2.保存字符对应码值大于255,这是我们可以考虑用int类型保存

3.以字符方式输出,需要格式化输出,即fmt.Printf("%c",c1)

细节

1.字符常量是用单引号('')括起来的单个字符,例如,

var c1 byte = 'a'

var c2 uint = '中'

2.Go中允许使用转义字符'\'来将其后的字符转变为特殊字符

3.Go语言的字符是UTF-8编码(包含ASCH码),英文字符1字节,汉字3字节

4.Go中,字符本质是一个整数

5.给某变量赋一个数字,然后按格式化输出%c,会输出unicode字符

6.字符类型可以进行运算,因为它们都有对应的Unicode码

布尔类型

1.也叫Bool类型,占用1个字节,只允许取值True和Faulse

2.适于逻辑运算,一般用于逻辑运算,一般用于程序流程控制

字符串类型string

字符串就是一串固定长度的字符连接起来的字符序列,Go的字符

细节

Go语言的字符串一旦赋值了,字符串就不能修改了

双引号 会识别转义字符

反引号 以字符串的原生形式输出,包括换行和特殊字符,可以防止被攻击

string使用的注意事项

多个字符串拼接时,加号保留在上一行

Golang中基本数据类型的默认值(0值)

所有数据类型都有一个默认值

当程序员没有赋值时,就会保留这个默认值

Go这个默认值又叫0值

整型 0

浮点型 0

字符串 ”“

布尔型 Faulse(不使用0/1)

%v表示按照变量得到原始值输出

基本数据类型的转换

Golang与JAVA/C不同,Golang在不同类型的变量之间赋值时需要显式转换

也就是Golang中数据类型不能自动转换

基本语法

表达式T(v),T:数据类型 v:要转换的变量

细节说明

1.被转换的时变量存储数据(即值),变量本身的数据类型并没有变化

2.可以时范围小转大,也可以时大转小

3.将int64转换为int8,若超出,编译时不会报错,转换时会溢出。在转换时候需要考虑范围问题

基本数据类型和string的转换

在程序开发中,我们经常将基本数据类型与string类型相互转换

基本数据类型转string

fmt.Sprintf(%f 表达式

使用strconv函数

基本数据类型转string类型

go标准库文档Go库文档 (studygolang.com)

如Sprintf根据format参数生成格式化的字符串

string类型转基本数据类型

使用时strconv包

//1.strconv.ParseBool(str)函数会返回两个值(value bool, err error)

//2.因为我只想获取到value bool ,不想获取err所以我使用,_忽略

使用strconv的函数

fmt.ParseBool(str string)

接收返回的类型和字节

在将string类型转成基本数据类型时,要确保string类型能够转成有效的数据

比如可以把”123“转成一个整数,但是不能把”hello"转成一个整数,会输出默认值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hanley_Yeung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值