类型转换
整型之间的转换
package main
import (
"fmt"
"reflect"
)
func main() {
//整型之间的转换
var a int8
a = 100
fmt.Println(a, reflect.TypeOf(a))
b := int32(a)
fmt.Println(b, reflect.TypeOf(b))
}
数字转字符串,字符串转数字
package main
import (
"fmt"
"reflect"
"strconv"
)
func main() {
var age = 44 //整型
fmt.Println(age, reflect.TypeOf(age))
//把整型转换成字符串
var ageStr = strconv.Itoa(age)
fmt.Println(ageStr, reflect.TypeOf(ageStr))
}
把数字转换成整型
package main
import (
"fmt"
"reflect"
"strconv"
)
func main() {
// 将数字字符串转换成整型
var money = "100"
//moneyNum ,_:= strconv.Atoi(money)//返回两个值,(int,error) ,_ 是一个匿名变量
moneyNum, error := strconv.Atoi(money) //返回两个值,(int,error),用error接收
fmt.Println("error", error)
fmt.Println(moneyNum, reflect.TypeOf(moneyNum))
}
Atoi返回两个值,一个是error,一个是int。 如果确认没有报错可以使用 下划线,表示匿名变量。
最终结果:
注意是把数字字符串, 其他的不行,比如 100元,这种就不行。
package main
import (
"fmt"
"reflect"
"strconv"
)
func main() {
// 将数字字符串转换成整型
var money = "100元"
//moneyNum ,_:= strconv.Atoi(money)//返回两个值,(int,error) ,_ 是一个匿名变量
moneyNum, error := strconv.Atoi(money) //返回两个值,(int,error) ,_ 是一个匿名变量
fmt.Println("error", error)
fmt.Println(moneyNum, reflect.TypeOf(moneyNum))
}
这时候就会出现error
将浮点型数字字符串转换成浮点型
将f的类型变成float64
package main
import (
"fmt"
"reflect"
"strconv"
)
func main() {
//将浮点型数字字符转换为浮点型
var f = "3.14515"
f2, _ := strconv.ParseFloat(f, 64) //ParseFloat也是返回量值
fmt.Println(f2, reflect.TypeOf(f2))
}
执行结果
运算符
一个程序的最小单位是一条语句,一条语句最少包含一条指令,而指令就是对数据做运算,我们已经学完基本数据类型了,知道如何构建和使用一些最简单的数据,那么我们能对这些数据做什么运算呢,比如fmt.Println(1+1)这条语句包含两个指令:
首先是计算1+1的指令,1就是数据,+就是算术运算符中的相加,这样计算机就可以帮我们执行这个指令计算出结果,然后执行第二个指令,即将计算结果2打印在终端,最终完成这条语句。
算术运算符
加法:
package main
import "fmt"
func main() {
fmt.Println(1 + 1)
fmt.Println("hello" + "word") //字符串拼接
}
乘法:
package main
import "fmt"
func main() {
fmt.Println(2 * 5)
}
取余:
5%4 余数为1
判断一个值是否为偶数
package main
import "fmt"
func main() {
var num = 6
fmt.Println(num%2 == 0)
}
结果为true 证明是偶数
内存地址的变化
package main
import "fmt"
func main() {
var num = 10
fmt.Println(&num) //取址符
num = 100
fmt.Println(&num)
fmt.Println(num)
}
可以看到地址相同的,地址不动,只是重新赋值。
但是重新赋值的大小要在原来的范围内。
自加一操作
三种方式:
package main
import "fmt"
func main() {
var num = 10
num = num + 1
fmt.Println(num)
num++ // num +1
fmt.Println(num)
num += 1
fmt.Println(num)
}
执行结果:
关系运算符
逻辑运算符
在与的世界里:
真+真 =真
真+假=假
假+假=假
只要有一个为假,结果就为假
在或的世界里,只要有一个为真,结果为真。
package main
import "fmt"
func main() {
fmt.Println(2 == 2 || 1 == 3)
fmt.Println(2 == 2 && 1 == 3)
fmt.Println(!(2 == 2 && 1 == 3))
}
/*
执行结果:
true
false
true
*/
赋值运算符
运算符优先级
总结
go语言的类型转换和运算符,学习起来也算比较简单。
o1over