Golang数据类型和变量

数据类型

先来介绍一下Golang的数据类型。

布尔型

bool类型代表逻辑值,有真值true和假值false两种取值。

整数类型

整数类型有如下几种,这些整数都是有符号的类型,它们的无符号版本是类型名前面添加u,例如uint32

类型 长度
int8 1字节
int16 2字节
int32 4字节
int64 8字节

除此以外,还有比较特殊的几种类型。

类型 长度 备注
byte 1字节 是int8的别名
int 和系统有关 有符号整数
uint 和系统有关 无符号整数
uintptr 和系统有关 指针类型
rune 4字节 是int32的别名,代表Unicode代码点

浮点数类型

有两种浮点数,单精度float32和双精度float64,类似于Java语言中的floatdouble

复数类型

Golang支持复数类型,有complex64complex128两种精度不同的复数类型。

字符串类型

字符串类型是string

类型默认值

对于布尔类型,默认值是false;对于整数类型,默认值是0;对于字符串类型,默认值是空值字符串""

变量和常量

变量声明

Golang比较特殊的一点就是类型后置了。如果学习过C系的语言,我们会习惯int a这样的类型 变量名方式。不过这种方式在复杂的类型组合下不太直观,所以Golang采用了后置的类型声明方式。如果声明的时候不指定初始化值,就会使用对应类型的默认值。

//类型在变量名后面
var i int

如果一行声明多个变量且类型相同,可以只在最后一个变量上添加类型。

var x, y int
//声明的同时赋值
var a, b int = 3, 4

如果要声明的是局部变量(在函数内部的变量),可以使用另一种方式:=,省略var关键字。这时候必须在声明的时候同时给定初始值,变量类型则由初始值的类型推断。

func hey() {
    k := 5
    fmt.Printf("k=%d", k)
}

如果变量声明在函数外面,那么它就是一个全局变量。

类型转换

Golang不支持隐式类型转换,所有类型都需要显式转换。转换使用类型名(变量名)的方式。

var count int = int(32.0)

常量声明

声明常量使用const关键字,常量无法使用:=方式声明。

const Pi = 3.1415926

你可能感兴趣的:(Golang数据类型和变量)