go语言基本数据类型

目录

一,一张图看清楚go数据类型

二,整型

1,什么是整型?

2,一张图看清整型

3,go语言中查看变量类型与所占空间字节数

4,go语言中应合理使用类型,避免内存浪费

三,小数(浮点数)类型

1,一张图看清浮点型

2,浮点数在内存中的存放方式

3,float32与float64的精度对比

4,go语言默认使用float64类型

5,小数的一般写法

5.1 十进制计数法

5.2 e记法

四,char字符类型

1,go语言没有char字符类型

1.1 用byte和rune来保存单个字符的Unicode码

1.2  字符变量使用单引号"括起来

2,go中的字符的值都是十进制Unicode码

2.1 打印单个字符显示出整数

2.2 单个字符可以与整型参与运算得到一个整数

五,布尔bool类型

1,只有true和false两个值

2,布尔类型占据一个字节

3,0和1不能代替false和true

六,字符串string类型

1,go中字符串的本质

2,字符串不可变

3,go中的原始字符串&反引号

4,对字符串使用+号

5,多行字符串

七,基本数据类型的默认值

八,数值类数据类型的相互转化

1,go不支持隐式转换

2,需要进行类型转换的情况

2.1 不同类型的数据进行运算

2.2 使用类型转换函数进行转换

3,整型及浮点型类型转换的注意点

3.1 字节数大的转字节数小的可能会溢出

3.2 只是对值进行转换,原始对象不会改变


一,一张图看清楚go数据类型

go语言基本数据类型_第1张图片

二,整型

1,什么是整型?

        整型包括:正数,负数,0。

2,一张图看清整型

go语言基本数据类型_第2张图片

        rune等价于int32,一般用作记录汉字的Unicode码。byte等价于uint8,一般用作记录ASCII字符码。

        var i = 1默认使用int,即类型推导默认看成是int类型。

3,go语言中查看变量类型与所占空间字节数

        使用%T显示类型,unsafe包的Sizeof方法获取变量大小。

package main

import (
	"fmt"
	"unsafe"
)

func main() {
	var v1 = 1
	fmt.Printf("v1的类型:%T,v1的内存大小:%d", v1, unsafe.Sizeof(v1))

}
// v1的类型:int,v1的内存大小:8

4,go语言中应合理使用类型,避免内存浪费

        例如年龄age,使用uint8即可。

三,小数(浮点数)类型

1,一张图看清浮点型

go语言基本数据类型_第3张图片

2,浮点数在内存中的存放方式

        浮点数=符号位+指数位+尾数位。精度受到尾数位的影响。浮点数带符号,可以表示正数,负数和0.0。

3,float32与float64的精度对比

        float64比float64的精度高。不容易造成数据精度丢失。

4,go语言默认使用float64类型

        var i = 3.14,则i的类型的为float64。

5,小数的一般写法

5.1 十进制计数法

        例如,var i = 3.1415

5.2 e记法

        例如,var i = 314e-2。

四,char字符类型

1,go语言没有char字符类型

1.1 用byte和rune来保存单个字符的Unicode码

var a byte = 'a'
var zhong rune = '中'

1.2  字符变量使用单引号"括起来

var char byte = 'a'

2,go中的字符的值都是十进制Unicode码

2.1 打印单个字符显示出整数

        单个字符(英文或者汉字)在go语言中一律记录的是其utf-8字符集编码。

fmt.Println('a')
//97

2.2 单个字符可以与整型参与运算得到一个整数

'a' + 10
//107

五,布尔bool类型

1,只有true和false两个值

        均为小写。

2,布尔类型占据一个字节

        占据一个字节。

3,0和1不能代替false和true

        无。

六,字符串string类型

1,go中字符串的本质

        把每个字符的Unicode存起来就是字符串在内存中的实际样子。比如"abc"实际上是\97\98\99。go中的字符串用双引号括起来。

2,字符串不可变

        字符串一经定义就无法修改。

3,go中的原始字符串&反引号

        反引号就是:ESC键下面那个。

var str = `sjkdnwdi2i2\n""""`

4,对字符串使用+号

        实现拼接两个字符串。

go语言基本数据类型_第4张图片

5,多行字符串

        字符串太长的时候使用。

go语言基本数据类型_第5张图片

七,基本数据类型的默认值

go语言基本数据类型_第6张图片

八,数值类数据类型的相互转化

1,go不支持隐式转换

        go不支持类型自动转换。

2,需要进行类型转换的情况

2.1 不同类型的数据进行运算

        例如:1+a"。

2.2 使用类型转换函数进行转换

        无。

3,整型及浮点型类型转换的注意点

3.1 字节数大的转字节数小的可能会溢出

        比如1111111转为int8(最大为127)则编译通过,结果不对。

3.2 只是对值进行转换,原始对象不会改变

        类型转换会生成一个新的对象,原来的变量(类型,值)都不会变。

你可能感兴趣的:(go语言,golang)