Go 基本类型
布尔型
bool
-长度 1字节
-取值范围true
false
-主要事项 不可使用0/1代替true/false整型
int
/uint
-根据运行平台肯为32或64位8位整型
int8
/uint8
-长度 1字节
-取值范围 -128~127 0字节型
byte( uint8别名 )
16位整型
int16
/uint16
-长度 2字节
-取值范围-32758~32767
0~65535
32位整型
int16
/uint16
-长度 4字节
-取值范围-2^32/2~2^32/2-1
0~2^32-1
64位整型
int16
/uint16
-长度 8字节
-取值范围-2^64/2~2^64/2-1
0~2^64-1
浮点型
float32
/float64
-长度 4/8字节
-小数位 精确的7/15小数位复数
complex64
/complex128
足够保存指针的32位或64位整数型
uintptr
其他值类型
-array
,struct
,string
引用类型
-slice
,map
,chan
接口类型
interface
函数类型
func
类型零值
类型 | 零值 |
---|---|
int | 0 |
bool | false |
[]int | [] |
string | 空 |
[]bool | false |
byte | 0 |
检查方法
使用 math
包中 MaxInt32( int32位最大值 )
等函数检查是否溢出
类型别名
此处仅为演示,实际项目中勿使用中文
type (
byte int8
rune int32
文本 string
)
//实际就是 var b string
var b 文本
单个变量的声明与赋值
-变量的声明格式 var <变量名称> <变量类型>
-变量的赋值格式 <变量名称> = <表达式>
-变量同时声明赋值 var <变量名称> <变量类型> = <表达式>
-变量自动推断声明赋值 <变量名称> := <表达式>
//声明
var a int
//辅助
a = 100
//声明并辅助
var b int = 100
//自动推断声明赋值
c := 100
多个变量的声明有赋值
-全局变量的声明可使用 var()
的方法简写
-全局变量的声明不可以省略 var
,但可以使用并行方式
-全局变量都可以使用类型推断
-局部变量不可以使用 var()
的方式简写,只能使用并行方式
//使用 var()
var (
aaa = "hello"
bbb = "world"
)
//并行方式
var a, b, c, d int = 1, 2, 3, 4
//并行自动推断
a, b, c, d := 1, 2, 3, 4
空白符号 _
a, _, c, d := 1, 2, 3, 4
多用于函数返回值
变量的类型转换
-Go中不存在隐式转换,所以类型转换必须显示声明
-转化只能发生在两种相互兼容的类型之间
-类型转换格式 <ValueA> [:] = <TypeOfValueA>(<ValueB>)
package main
import (
"fmt"
"strconv"
)
func main() {
var a float32 = 100.1
fmt.Println(a) //100.1
b := int(a)
fmt.Println(b) //100
var s = 65
//"A",是ASCII编码的65对应字符
p := string(s)
//若想得到string 65,使用 strconv 包
//string 65
k := strconv.Itoa(s)
//int 65
m := strconv.Atoi(k)
}