Go编程基础03-类型与变量

Go基本类型

类型 长度 取值范围 注意事项 零值(即默认值)
布尔型bool 1字节 true/false 不能使用数字代替 false
整型int/uint 根据运行平台可能为32位或64位 0
8位整型int8/uint8 1字节 -128-127/0-255 0
字节型byte(uint8别名) 用法等同于无符号的8位整型 0
16位整型int16/uint16 2字节 -32768-32767/0-65535 0
32位整型int32(rune别名)/uint32 4字节 rune常用于Unicode,用法等同于有符号的32位整型 0
64位整型int64/uint64 8字节 0
浮点型float32/float64 4/8字节 小数位精确到7/15位小数位 0
复数complex64/complex128 8/16字节 0
足够保存指针的32位或64位整数型uintptr 0

范例:验证基本类型零值和最大最小值

package main

import (
	"fmt"
	"math"
)

func main() {
	var a int
	fmt.Println(a) // 0
	var b float32
	fmt.Println(b) // 0
	var c bool
	fmt.Println(c) // false
	var d byte
	fmt.Println(d) //0
	// go中的math包可以取得基本类型的最大值和最小值
	fmt.Println(math.MaxFloat32)
}

变量

单个变量的声明与赋值

声明格式:var 变量名 变量类型
赋值格式:变量名 = 表达式
声明的同时赋值:var 变量名 变量类型 = 表达式

package main

import (
	"fmt"
	)

func main() {
    // 先声明后赋值多用于全局变量声明
	var a int // 声明变量
	a = 11    // 变量赋值
	fmt.Println(a)

	// 声明的同时并赋值
	var b int = 12
	fmt.Println(b)

	// 声明时省略类型,由系统推断
	var c = false
	fmt.Println(c)

	// 简短声明,仅用于局部变量
	d := 18.9
	fmt.Println(d)
}

多个变量的声明与赋值

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

import (
	"fmt"
	)

var (
	// 常规方式
	aa = 123
	// 并行声明
	bb, cc = 56, false
)

func main() {
	// 多个变量声明
	var a, b int
	// 多个变量赋值
	a, b = 11, 13
	fmt.Println(a + b)
	
	// 多个变量声明的同时赋值
	var c, d int = 6, 7
	fmt.Println(c + d)
	// 多个变量声明时省略类型
	var e, f = 8, 1
	fmt.Println(e + f)
	// 多个变量简短声明
	g, h := 11, 15
	fmt.Println(g + h)
}

变量的类型转换

  • Go中不存在隐式转换(即自动转换),所有类型转换必须显式声明(即强制转换)
  • 转换只能发生在两种互相兼容的类型之间
  • 类型转换格式:valueA [:]= TypeofValueA (valueB)
package main

import (
"fmt"
)

func main() {
	// 整数型与浮点型兼容,可以进行类型转换
	var a float32 = 100.1
	fmt.Println(a) // 100.1
	b := int(a)
	fmt.Println(b) // 100
}

猜你喜欢

转载自blog.csdn.net/Loiterer_Y/article/details/83315977