Go的常亮
关键字: Const
Go常亮的多个定义:
// 定义常亮的关键字 const // 定义多个常亮 const( PI = 3.14 const1 = "1" const2 = 2 const3 = 3 )
全局变量的声明与赋值:
var ( name = "wyc" name1 = 1 name2 = 2 name3 = 3 )
一般类型声明:
type ( newType int type1 float32 type2 string type3 byte )
Go的基本类型:
布尔型: - 长度 1字节 - 取值范围: true、false - 注意事项: 不可以使用数字来代表true或false
整型: int/uint - 根据运行平台可能为32或64位
8位整型: int8/uint8 - 长度: 1字节 - 取值范围: -128~127 / 0~255
字节型: byte(uint8别名)
16位整型: int/uint16 - 长度: 2字节 - 取值范围: -32768~32767 / 0~65535
32位整型: int32(rune) int32/uint32 - 长度: 4字节 - 取值范围: -2^64/2~2^64/2-1/0~2^64-1
64位整型: - 长度 8字节 - 取值范围: -2^64/2~2^64/2-1/0~2^64-1
浮点型: float32 / float64 - 长度: 8/8字符 - 小数位: 精确到7/15小数位
复数类型: complex64/complex128 - 长度: 8/16字节
足够保存指针的32位或64位整数型: uintptr
// 其他值类型: - array、 struct、string
// 引用类型: - slice、map、chan // 接口函数 : inteface // 函数接口 : func
类型零值:
零值并不等于空值,而是当变量声明为某种来兴后的默认零值,通常情况下默认值为0,bool为false,string为空字符串。
类型别名:
type( byte int8 rune int32 文本 string )
别名:
var a 文本 b = "你好中国"
零值:
package main import ( "fmt" ) func main() { var a int fmt.Println(a) } // 结果: 0
math包
math包可以检查类型是否超出范围
math.Min 记录了一个最小值和一个最大值
int型的最小值:
math.MinInt8 int类型的最小值就会打印出来, -128
类型声明
package main import ( "fmt" ) // 类型的定义 type ( byte int8 rune int32 文本 string ) func main() { var a 文本 a = "你好中国" fmt.Println(a) } // 在实际应用中最好还是不要使用中文,它有可能会引起一些不必要的错误。
单个变量的声明与赋值 and 多个变量的声明与赋值
单个变量:
单个变量的声明格式: var <变量名称> <变量类型>
变量的赋值的格式 : <变量名称> = <表达式>
变量声明的同时赋值 : var <变量名称> <变量类型> = [表达式]
多个变量 :
全局变量的声明格式: var <变量名称> <变量类型>
全局变量的声明不可以省略 var, 但可使用并行方式
所有变量都可以使用类型推断
局部变量不可以使用 var() 的方式简写,只能使用并行方式
var ( // 常规方式 aaa = "hello" // 使用并行方式以及类型推断 w,y,c = 11,22,33 // ccc := 3 // 不可以省略 var )
多个变量:
// 多个变量声明 var a,b,c,d int // 多个变量赋值 a,b,c,d = 1,2,3,4 // 多个变量声明的同时赋值 var w,y,c int = 1,2,3 // 省略变量类型,由系统推断类型 var w,y,c = 1,2,3 // 多个变量的声明与赋值的最简的写法 w,y,c := 11,22,33
package main import ( "fmt" ) func main() { // var w,y,c int // w,y,c = 1,2,3 w,y,c := 11,22,33 fmt.Println(w,y,c) }
// 下划线可以表示不需要的元素
package main import ( "fmt" ) func main() { w,_,c := 11,22,33 fmt.Println(w,c) }
变量的类型转换
Go中不存在隐式转换,所有类型转换必须显示声明。
转换只能发生两种相互兼容的类型之间
类型转换的格式:
<Value>[:] = <TypeOfValueA> (<ValueB>)
package main import ( "fmt" ) func main() { var a float32 = 1.1 b := int(a) fmt.Println(b) }