Go语言基础 - 基本数据类型

基本数据类型

Go语言是一种静态类型的编程语言,在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有符号

go语言数字类型

func main() {
    var i1 int8
    var i2 uint8

    i1, i2 = 100, 200
    fmt.Println(i1)
    fmt.Println(i2)

}

浮点型,Go语言中默认是float64

go语言浮点类型

func main() {

    var money float64 = 3.14

    fmt.Printf("%T,%f\n", money, money)     //默认6位小数打印,四舍五入

}

常见的别名

go语言类型常见别名

字符与字符串

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            //直接舍去小数
*/

尽量小转大,因为大转小会造成精度丢失。

标签: 无

发表评论: