类型
1.实数
浮点型
声明方式有三种
floatNum := 3.1415 //简单赋值方式
var floatNum = 3.1415 //对于浮点型,go会默认设置为float64
var floatNum float64 = 3.1415 //显示声明类型
默认情况下go声明浮点型变量都是float64双精度浮点型,比float32单精度浮点型精度要高,但是同样内存占用也更高。
如果要声明为单精度浮点型,需要显式声明类型。
浮点类型的打印
num := 1.0 / 3
fmt.Println(num)//打印结果0.3333333333333333
fmt.Printf("%v\n",num) //打印结果0.3333333333333333
fmt.Printf("%f\n",num)//打印结果0.333333
fmt.Printf("%.3f\n",num)//打印结果0.33
2.整数
整数中分为有符号型和无符号型
分别表示为int8,uint8,int16,uint16,int32,uint32,int64,uint64,int
big包
(1)存储大整数的big.Int.
(2)存储任意精度浮点数的big.Float
(3)存储诸如1/3的分数big.Rat
3.文本
string类型文本
其中只有一点需要注意的是以下这种形式的输出,在java中是没有的
func main() {
fmt.Println(`
这一段
是会按原始格式
输出的`)
}
rune和byte
其中rune和int32类型完全互换,byte和uint8可以完全互换,并且具有相同的表现。rune相当于java中的char。
可以理解为是int32和byte的别名。
但是rune主要用来表示字符代码,byte用来表示二进制数之类的,语义更为明显一点。
4.零值
每种类型都有相应的默认值,我们称之为零值。
var num float64 //打印结果为0 相当于 num :=0.0
5.数字类转换
go语言中不同的数字类型不能相互运算,所以使用之前必须得进行类型转换才能一起运算。
例子:
func main() {
a := "这段文本共"
b := 7
c := string('字')
fmt.Println(a + strconv.Itoa(b) + c) //其中将整数转换为ASCII码需要使用strconv.Itoa函数进行转码
//或者使用fmt.Sprintf对数据进行格式化
d := fmt.Sprintf(a + "%v" + c,b)
fmt.Println(d)
//2次打印都会输出以下内容
//这段文本共7字
}