Go 语言基础(三)——基本数据类型

数据类型

在这里插入图片描述

int unint的大小与系统有关,整形默认声明int

Go在使用时遵保小不保大,尽量使用占用空间小的数据类型

查看占用空间用unsafe.Sizeof()

Java 等其他语言将String归于引用数据类型,不属于基本数据类型,但Go语言里属于基本数据类型

	var s int64 = 10
	fmt.Printf("n2的类型:%T, s占用字节数:%d", s, unsafe.Sizeof(s))
// %T 代表数据类型,%d代表整数

输出:

n2的类型:int64, s占用字节数:8

整数的各个类型

类型有无符号占用空间范围备注
int81字节-128~127
int162字节-215 ~215-1
int324字节-231 ~231-1
int648字节-263 ~263-1
uint81字节0~255
uint162字节0~216-1
uint324字节0~232-1
uint648字节0~264-1
int32位系统:4字节
64位系统:8字节
32位系统:-231 ~231-1
64位系统:-263 ~263-1
uint32位系统:4字节
64位系统:8字节
32位系统:0~232-1
64位系统:0~264-1
rune与int32一样-231 ~231-1等价int32,表示一个Unicode码
byte与uint8等价0~255存储字符时,选用byte

小数类型/浮点型

  • 浮点数的存放:符号位+指数位+尾数位
  • 浮点数都是有符号的
  • 浮点数可能会丢失尾数导致精度损失,因此若对值进行判断,一般不直接使用等号。
  • Golang默认声明float64,存储空间不受操作系统位数影响
  • 开发中推荐使用float64
类型存储空间表数范围
float324字节-3.403E38~3.403E38
float648字节-1.798E308~1.798E308

字符类型

若要存储单个字符,一般用byte来保存

Go的字符串是由单个字节连接起来的,也就是说,Go的字符串是由字节构成的,与Java等不同。

  • 如果要保存的字符属于ASCII表,则可以用byte直接保存
  • 如果字符串对应的码值大于255,考虑用int类型保存
  • 如果需要按照字符串的方式输出,则选择格式化输出,fmt.Println("%c",n)
使用细节
  • 字符常量是用单引号括起来的单个字符,如:byte='a'
  • Go语言允许使用转义字符,如:var c3 char = '\n'
  • Go语言字符使用UTF-8编码,英文占1字节,中文3字节
  • Go语言中,字符的本质是一个整数,是该字符对应的UTF-8编码的值
  • 可以直接个某一个变量赋值一个数字,格式化%c输出时,会输出该字符对应的Unicode字符
  • 字符型可以进行运算,因为其本质就是一个整数。
  • 字符串和其对应码值是规定好的字符编码表决定的
  • Go语言的编码是UTF-8,因此基本没有中文乱码的问题。
func main() {
	var byte1 byte = 'a'
	var byte2 byte = 'b'
	fmt.Println(byte1)
	fmt.Println(byte2)
	fmt.Printf("byte1:%c,byte2:%c \n", byte1, byte2)
	fmt.Println(byte1 + byte2) //可以直接相加
	fmt.Printf("byte1+byte2=%c", byte1+byte2)
}

输出:

97
98
byte1:a,byte2:b 
195
byte1+byte2=Ã

布尔类型

  • 也叫bool类型,值仅有true和false

  • bool仅占一个字节

  • 该类型主压要用于逻辑运算,一般用于流程控制

String类型

  • 字符串就是一串固定长度的字符连接起来的字符序列,Go的字符串由单个字符连接起来,使用UTF-8标识Unicode文本

  • Go语言中字符串不可更改,即一旦复制,不允许再修改值的内容

  • 字符串可以用""标识,该方式会识别转义字符

  • 字符串还可以用``表示,该方式会以字符串的原生形式进行输出,包括换行和特殊字符,可以实现防攻击、输出源码等形式

字符串拼接
var str = "hello"
str += " world"

当字符串很长时,需要用到多行字符串,此时需要把+号保留在上一行

str 4 := "hello "+ "world "+
"  hello"+" world"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

稷下学员

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

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

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

打赏作者

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

抵扣说明:

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

余额充值