Go语言学习笔记(三)中是什么?
摘要:一、浮点数 1、概述 + 浮点类型用于存储带有小数点的数字 + 一个整数数值可以赋值给浮点类型但是一个整型变量不可以赋值给浮点类型 + 浮点数进行运算的结果是浮点数 +
一、浮点数
1、概述
浮点类型用于存储带有小数点的数字
一个整数数值可以赋值给浮点类型但是一个整型变量不可以赋值给浮点类型
浮点数进行运算的结果是浮点数
Go语言中浮点类型有两个
float32
float64
2、浮点数取值范围
float32和float64取值范围
类型
取值范围
float32
3.40e+38
float64
1.798e+308
可以通过math或中常量快速获取浮点数的最大值
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.MaxFloat32)
fmt.Println(math.MaxFloat64)
}
3、浮点运算
float32和float64之间不可以相互运算,需要进行类型转换
package main
import (
"fmt"
)
func main() {
var a float32 = 1.5
var b float64 = 3.3
fmt.Println(a + float32(b))
fmt.Println(float64(a) + b)
}
建议使用float64,虽然占用空间多,但是float32在累计运算时可能出现误差
整型运算和浮点型运算结果类型为本身类型
package main
import (
"fmt"
)
func main() {
var a, b int = 2, 3
var c, d float64 = 3, 2
fmt.Println(a / b)
fmt.Println(c / d)
}
二、布尔类型
1、介绍
布尔类型关键字为bool
布尔类型可取值只有两个
true代表真,表示成立,二进制用1表示真
false代表假,表示不成立,二进制用0表示假
布尔类型不能与其他类型相互转换
布尔类型占用1个byte
布尔类型单独使用较少,多用在判断中
2、示例
创建bool类型变量
package main
import (
"fmt"
)
func main() {
var a bool = true
var b bool = false
var c = true
d := false
fmt.Println(a, b, c, d)
}
使用unsafe包下的Sizeof()可以查看类型占用字符
package main
import (
"fmt"
"unsafe"
)
func main() {
a := false
fmt.Println(unsafe.Sizeof(a))
}
虽然bool类型占用一个byte,但是bool不能和byte或int8相互转换
package main
import (
"fmt"
)
func main() {
var a int8 = 1
var b byte = 0
var c bool = false
fmt.Println(a, b, c)
a = int8(c) //cannot convert c (type bool) to type int8
b = byte(c) //cannot convert c (type bool) to type byte
c = bool(a) //cannot convert a (type int8) to type bool
c = bool(b) //cannot convert b (type byte) to type bool
b = byte(a)
}
布尔类型除了直接赋值true或false以外,还可以用表达式赋值,借助比较运算符、逻辑运算符
三、运算符
1、概述
Go语言支持运算符,算数运算符、比较运算符、逻辑运算符、赋值运算符、关系运算符、位运算符
不同的运算符使用场景不同,运算符一起使用时还需要注意优先级问题
2、算数运算符
算数运算符对浮点数和整型进行数学运算
乘法、除法优先级高于取余,取余高于加法、减法
运算符
含义
+
加法
-
减法
*
乘法
/
除法
%
取余
++
自增1
--
自减1
3、比较运算符
比较运算符用于比较两个内容的大小,判断和分支中使用频率较高
运算符
含义
==
是否等于,返回值为bool类型,判断是否成立
!=
不等于
>
大于
