基本数据类型
Go语言是一种静态类型的编程语言,在Go编程语言中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。编译器在进行编译的时候,就要知道每个值的类型,这样编译器就知道要为这个值分配多少内存,并且知道这段分配的内存表示什么。
布尔型
布尔型的值只可以是常量true或者false。
默认值是false。
func main() {
    
    var b1 bool            
    var b2 bool
    
    b1 = true
    b2 = false
    
    fmt.Printf("%T,%t\n", b1, b1)
    fmt.Printf("%T,%t\n", b2, b2)
    
}
/*
    bool,true
    bool,false
*/数字类型
整型int和浮点型float32、float64,Go语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。
Go也有基于架构的类型,例如:unit无符号、int有符号

func main() {
    var i1 int8
    var i2 uint8
    i1, i2 = 100, 200
    fmt.Println(i1)
    fmt.Println(i2)
}浮点型,Go语言中默认是float64

func main() {
    var money float64 = 3.14
    fmt.Printf("%T,%f\n", money, money)     //默认6位小数打印,四舍五入
}常见的别名

字符与字符串
func main() {
    
    var str string
    str = "Hello,Go"
    fmt.Printf("%T,%s\n", str, str)
    v1 := 'A'
    v2 := "A"
    fmt.Printf("%T,%s\n", v1, v1)
    fmt.Printf("%T,%s\n", v2, v2)
}
/*
    string,Hello,Go
    int32,%!s(int32=65)            //可以看到单引号定义的变量实际是int32类型,实际上打印的是对应ASCII表中的十进制值
    string,A 
*/func main() {
    // 拼接
    fmt.Printf("aaa" + "bbb\n")
    // 转义
    fmt.Printf("hello\"bbb\n")
    
    // 换行
    fmt.Printf("hello\nbbb")
    
    // Tab
    fmt.Printf("hello\tbbb")
}
/*
    aaabbb             
    hello"bbb
    hello
    bbb
    hello  bbb
*/数据类型的转换
在必要以及可行的情况下,一个类型的值可以被转换成另一种类型的值。由于Go语言不存在隐式类型转换,因此所有的类型转换都必须显式的声明。
类型B的值 = 类型B(类型A的值)
func main() {
    a := 3.14
    b := int(a)
    fmt.Println(a)
    fmt.Println(b)
}
/*
    3.14
    3            //直接舍去小数
*/尽量小转大,因为大转小会造成精度丢失。