2、Go的类型和变量

既然导入多个包可以简写,那么声明多个常量、全局变量或一般类型(非接口、非结构)是否也可以用同样的方式简写呢?

// 常量定义
const (
	PI = 3.14
	const1 = "1"
	const2 = 2
)

// 一般类型声明
type (
	newType int
	type1 float32
	type2 string
	type3 byte
)

// 全局变量的声明与赋值
var (
	name = "goer"
	name1 = "1"
)

注意声明在函数体内的变量(不是全局变量了)不能用这种简写方式

Go基本类型

布尔型:bool
长度:1字节
取值范围:true、false
注意事项:不可以用数字代表true或false
整型:int/uint
根据运行平台可能是32或64
8位整型:int8/uint8
长度:1字节
取值范围:-128127/0255
字节型:byte(uint8别名)
16位整型:int16/uint16
长度:2字节
取值范围:-3276832768/065535
32位整型:int32(rune)/uint32
长度:4字节
64位整型:int64/uint64
长度:8字节
浮点型:float32/float64
长度:4/8字节
小数位:精确到7/15位小数位
复数:complex64/complex128
长度:8/16字节
足够保存指针的32位或64位整数型:uintptr
其他值类型:array、struct、string
引用类型:slice、map、chan
接口类型:interface
函数类型:func

类型零值

零值并不等于空值,而是当变量被声明为某种类型后的默认值,通常情况下默认值为0,bool为false,string为空字符串。
##类型别名

type (
	byte int8
	rune int32
	文本 string
)

此处只是演示,不建议这样搞哈

单个变量的声明与赋值

var a int // 变量的声明
a = 123 // 变量的赋值

// 变量声明的同时赋值
var b int = 111
// 也可以省略类型由系统判断
var c = 222

// 变量的声明与赋值
// 简写方式
d := 444

多个变量的声明与赋值

全局变量的声明可使用var()的方式进行简写,不可省略,但可使用并行方式。
所有变量都可以使用类型推断。
局部变量不可以使用var()的方式简写,只能使用并行方式。

var (
	aaa = "hello"
	a,b = 1,2 // 并行的方式
)

// 多个变量的声明
var a, b, c int
// 多个变量的赋值
a, b, c = 1, 2, 3

// 多个变量声明同时赋值
var aa, bb  int = 11, 22

// 简写方式
m, n := 77, 88

变量的类型转换

Go中不存在隐式转换,所有类型转换必须显式声明。
转换只能发生在两种相互兼容的类型之间。

var f float = 100.1

// 把flaot类型转为int型
b := int(f)

猜你喜欢

转载自blog.csdn.net/github_26672553/article/details/84678579
今日推荐