内置基础数据类型

作者: ffacs 分类: Golang 发布时间: 2020-03-09 08:46

Number

整数

Go语言中有uint8, uint16, uint32, uint64, int8, int16, int32int64,其中u开头的是无符号类型,后面的数字代表位数。

Go还定义了三个依赖系统的类型,uintintuintptr。因为在32位系统和64位系统上用来表示这些类型的位数是不一样的。
对于32位系统 uint=uint32,int=int32,uintptr为32位的指针
对于64位系统uint=uint64,int=int64,uintptr为64位的指针

浮点数

Go的浮点数类型有两种,float32float64。float32又叫单精度浮点型,float64又叫做双精度浮点型。其最主要的区别就是小数点后面能跟的小数位数不同

虚数

另外Go还有两个其他语言所没有的类型,虚数类型complex64complex128,后面的数字代表位数,其中实数部分和虚数部分各占一半位数。

数值操作

对于数值类型,其所共有的操作为加法(+)减法(-)乘法(*)除法(/)。另外对于整数类型,还定义了求余运算(%)

String

字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。(对于汉字,通常由多个字节组成)。这就是说,传统的字符串是由字符组成的,而Go的字符串不同,是由字节组成的。这一点需要注意。

字符串的表示很简单。用(双引号"")或者(``号)来描述。

package main

import "fmt"

func main() {
    var a string = "123\n321"
    var b string = `123\n321`
    fmt.Printf("%s\n", a)
    fmt.Printf("%s", b)
}
//输出为
/*
123
321
123\n321
*/

运行下面的代码

package main

func main() {
    var a string = "123\n321"
    var b string = `123\n321`
    fmt.Println(len(a)," ",len(b))
}
//输出是7,8

可以得到结论,a在内存中是'1' '2' '3' '\n' '3' '2' '1',b是'1' '2' '3' '\' 'n' '3' '2' '1'

不可变

Go 中的字符串和 Java 中的一样,是不可变类型,也就是类似const char*

package main

import "fmt"

func main() {
    var a string = "123\n321"
    //a[3] = '1'
}

布尔型

布尔型是表示真值假值的类型。可选值为truefalse。所能进行的操作如下:&& and 与|| or 或! not 非

取值

Go的布尔型取值就是truefalse任何空值(nil)或者零值(0, 0.0, "")都不能作为布尔型来直接判断

也就是说不能

if 0{

}
if nil {

}
if "" {

}

发表评论

电子邮件地址不会被公开。 必填项已用*标注