golang基础--类型与变量

基础知识--类型与变量 基本类型

布尔型:bool

长度: 1bytes

取值范围: false, true

注意事项: 不可以使用数字代表,不像 python中可是使用 1和0表示

整型: int/uint

根据运行平台可能是32位或者是64位

8位整型: int8/uint8

长度:1字节

取值范围:

128~127(有运算符号)

0-255 无符号

字节型: byte (uint8别名)

16位整型:int16/uint16

长度:2字节

取值范围: -32768~32767 / 0~65536

32位整型:int32(rune) /uint32

长度:4字节

取值范围:-2^32 /2 -2^32 / 2-1/0~2^32-1

64位整型:int64/uint64

长度:8字节

取值范围:-2^64 /2 -2^64 / 2-1/0~2^64-1

浮点型: float32/float64

长度:4/8字节

小数位:精度 7/15小数位

足够保存指针的32或64位整数型:uintptr

其他类型:

array, struct ,string

引用类型:

slice, map, chan(通道--高并发特有)

接口类型: inteface

函数类型:func

类型零值

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

go // 变量默认值 package main import "fmt" func main(){ var a int var b int32 var c float32 var d bool var e string var a1[] int fmt.Println(a) fmt.Println(b) fmt.Println(c) fmt.Println(d) fmt.Println(e) fmt.Println(a1) } /*output 0 //int 0 //int32 0 //float32 false //bool // string 默认为空 [] //切片 */

类型别名

顾名思义就是可以将类型名指向一个别名

go // 类型别名 package main import "fmt" type ( byte int8 rune int32 文本 string //可是使用中文类型别名 ByteSize int64 // 可以更加直观的描述类型 ) func main() { var b 文本 //将string 类型定义别名为文本 b ="文本类型名" fmt.Println(b) } // output : 文本类型名import "fmt"

多个变量的声明

注意多个变量赋值多种写法

go //多个变量声明 package main import "fmt" var ( aaa = "hello" sss,bbb = 1, 2 //自行推断类型 // ccc :=3是错误的,不可以省略var ) func main() { //var a, b, c, d = 1, 2, 3, 4 //并行声明变量,省略int类型 //a, b, c, d := 1, 2, 3, 4 // 函数变量中可以省略var,全局变量必须使用var a, _, c, d := 1, 2, 3, 4 // _可以忽略某一个值,实际应用于当函数有多个返回值时,忽略某一个不使用的值 fmt.Println(a) //fmt.Println(b) fmt.Println(c) fmt.Println(d) }

变量类型转换

go中不存在隐式转换,所有的类型转化必须是显示的声明

转换只发生在两种相互兼容的类型之间

类型转换格式如下:

go // 类型转换 package main import "fmt" func main() { var a float32 = 100.1 fmt.Println(a) b := int(a) fmt.Println(b) //这种方式是可行,只存在精度的丢失 c :=bool(a) //这种方式是可行,只存在精度的丢失 fmt.Println(c) } c /*output a-->100.1 b--->100 //丢失了精度 c--->cannot convert a (type float32) to type bool */

思考:数字如何变成字符串?

GO //int转string,并不是我们想达到的效果 package main import "fmt" func main() { var a int = 65 b := string(a) //int 转string,输出的是UTF8码中,序号65位表示的是字母A b1 := strconv.Itoa(a) //确实想要将int 65 转换成string 65,使用 strconv包 fmt.Println(b) fmt.Println(b1) } //output: A //output: "65"

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

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