bool
一个简单的列子:
var a bool = ture
bool值只有false和true。两个相同的类型之间可以通过 == 或者 != 来比较获取一个bool值。
比如:
var a = 1
a == 5 //false
a == 1 //true
a != 2 //true
a != 1 //false
go对于值之间的比较非常严格,只有两个相同的类型的值才可以进行比较。如果其中一个值是常量,那么另外一个的值必须是跟该常量类型兼容。
bool的常量和变量也可以通过逻辑运算符 非!和&& 或|| 结合来产生出另一个bool值。
好的命名可以提升代码的可读性 ,对于bool的值,例如is或者Is开开头的IsSorted。
数字类型
整型int和浮点型float
整数:
- int8(-128 -> 127)
- int16(-32768 -> 32767)
- int32(-2,147,483,648 -> 2,147,483,647)
- int64(-9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807)
无符号整数:
- uint8(0 -> 255)
- uint16(0 -> 65,535)
- uint32(0 -> 4,294,967,295)
- uint64(0 -> 18,446,744,073,709,551,615)
浮点型(IEEE-754 标准):
- float32(+- 1e-45 -> +- 3.4 * 1e38)
- float64(+- 5 1e-324 -> 107 1e308
go中没有float类型,整型的零值为0,浮点型的零值为0.
float32精确到小数点后7位,float64精确到小数点15位。所以在比较浮点数时需要非常小心。
开发中尽量使用float64,因为math包中所有关于数学运算的函数都会要求接收这个类型。
go不允许不同类型之间的混合使用,但是对于常量的限制非常少,所以允许常量之间的混合使用。
package main
func main() {
var a int
var b int32
a = 15
b = a + a //错误
b = b + 5 //5是常量
}
复数
go有两种复数:
complex64
complex128
复数用re+imI来表示,re代表实数部分,im代表虚数部分,I代表根号负1。
运算符
逻辑运算符
== , !=, < , <=, > ,>=
算数运算符
二元运算符 + - * /
取余 %
自增自减 (+=, ++) -= *= /= %=
运算符优先级
优先级 运算符
7 ^ !
6 * / % << >> & &^
5 + - | ^
4 == != < <= >= >
3 <-
2 &&
1 ||
类型别名
当你在使用某个类型时,你可以给他另起一个名字,然后使用这个新名字。
package main
import "fmt"
type newint int
func main() {
var a newint = 2
c := a + 2
fmt.Println("c = %d", c)
}
微信搜索「goentry-xyz」,关注公众号「灯下独码」
网友评论