Go语言|基本数据类型

虽然从底层而言,所有的数据都是由比特组成,但计算机一般操作的是固定大小的数,如整数、浮点数、比特数组、内存地址等。进一步将这些数组织在一起,就可表达更多的对象,例如数据包、像素点、诗歌,甚至其他任何对象。Go语言提供了丰富的数据组织形式,这依赖于Go语言内置的数据类型。这些内置的数据类型,兼顾了硬件的特性和表达复杂数据结构的便捷性。

基本类型汇总 基本数据类型 长度(字节) 默认值 说明
bool   1   false    
byte   1   0   uint8  
rune   4   0   Unicode Code Point, int32  
int, uint   4或8   0   32 或 64 位  
int8, uint8   1   0   -128 ~ 127, 0 ~ 255,byte是uint8 的别名  
int16, uint16   2   0   -32768 ~ 32767, 0 ~ 65535  
int32, uint32   4   0   -21亿~ 21亿, 0 ~ 42亿,rune是int32 的别名  
int64, uint64   8   0    
float32   4   0.0    
float64   8   0.0    
complex64   8      
complex128   16      
uintptr   4或8     以存储指针的 uint32 或 uint64 整数  
复杂数据类型 长度(字节) 默认值 说明
array       值类型  
struct       值类型  
string     ""   UTF-8 字符串  
slice     nil   引用类型  
map     nil   引用类型  
channel     nil   引用类型  
interface     nil   接口  
function     nil   函数  
布尔类型

布尔型的值只可以是常量 true 或者 false
简单定义:

var b bool = true

两个相同类型的值可以通过 == 或者 != 等比较运算符号来获得一个布尔类型的值。

布尔值并不会隐式转换为数字值0或1,反之亦然。必须使用一个显式的if语句辅助转换:

// 布尔类型转换为0或者1 func btoi(b bool) int{ if b { return 1 } return 0 } // 数字转换为布尔类型 func itob(i int) bool { return i != 0 } 整形

Go语言中整形被分为三大类:int 、uint、uintptr
这三种类型的长度是跟据程序所在的操作系统来决定长度的:

int 和 uint 在32位操作系统上,它们使用32位,4个字节,在64拉操作系统上,它们使用64位,8个字节。

uintptr 的长度被设定为存储指针的 uint32 或 uint64 整数

int 和uint又被称为有符号整形和无符号整形
有符号整形:

int8(-128 -> 127)

int16(-32768 -> 32767)

int32(-2,147,483,648 -> 2,147,483,647)

int64(-9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807)

无符号整形:

uint8(0 -> 255)

uint16(0 -> 65,535)

uint32(0 -> 4,294,967,295)

uint64(0 -> 18,446,744,073,709,551,615)

用不同的进制来表示整数:
十进制:

var Decimal int = 12

二进制:

var Binary int = 0b1100

八进制:

var Octal int = 0o14

十六进制:

var Hexadecimal int = 0xc

用fmt.printf()函数进行输出:

func main() { var Decimal int = 12 var Binary int = 0b1100 var Octal int = 0o14 var Hexadecimal int = 0xCvar fmt.Printf("10进制数 %d 表示的是: %d \n", Decimal, Decimal) //12 fmt.Printf("2进制数 %b 表示的是: %d \n", Binary, Binary) //12 fmt.Printf("8进制数 %o 表示的是: %d \n", Octal, Octal) //12 fmt.Printf("16进制数 %X 表示的是: %d \n", Hexadecimal, Hexadecimal) //12 }

跟据上面的输出可以发现,在Go语言中使用二进制、八进制、十六进制 非常的方便,只需要在数字前面加上:0b、0o、0x 就可以使用。

补充:

fmt.Printf() 函数据的格式化功能:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfjyf.html