0
点赞
收藏
分享

微信扫一扫

go语言基础-类型转换及运算


类型转换

整型之间的转换

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))

}

go语言基础-类型转换及运算_浮点型

把数字转换成整型

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。 如果确认没有报错可以使用 下划线,表示匿名变量。

最终结果:

go语言基础-类型转换及运算_goland_02

注意是把数字字符串, 其他的不行,比如 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

go语言基础-类型转换及运算_goland_03

将浮点型数字字符串转换成浮点型

将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))
}

执行结果

go语言基础-类型转换及运算_goland_04

运算符

一个程序的最小单位是一条语句,一条语句最少包含一条指令,而指令就是对数据做运算,我们已经学完基本数据类型了,知道如何构建和使用一些最简单的数据,那么我们能对这些数据做什么运算呢,比如fmt.Println(1+1)这条语句包含两个指令:

首先是计算1+1的指令,1就是数据,+就是算术运算符中的相加,这样计算机就可以帮我们执行这个指令计算出结果,然后执行第二个指令,即将计算结果2打印在终端,最终完成这条语句。

算术运算符

go语言基础-类型转换及运算_goland_05

加法:

package main

import "fmt"

func main() {
	fmt.Println(1 + 1)
	fmt.Println("hello" + "word") //字符串拼接
}

go语言基础-类型转换及运算_浮点型_06

乘法:

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)
}

go语言基础-类型转换及运算_字符串_07


可以看到地址相同的,地址不动,只是重新赋值。

但是重新赋值的大小要在原来的范围内。

自加一操作

三种方式:

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)
}

执行结果:

go语言基础-类型转换及运算_goland_08

关系运算符

go语言基础-类型转换及运算_整型_09


go语言基础-类型转换及运算_浮点型_10

逻辑运算符

go语言基础-类型转换及运算_goland_11


在与的世界里:

真+真 =真

真+假=假

假+假=假

只要有一个为假,结果就为假

在或的世界里,只要有一个为真,结果为真。

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语言基础-类型转换及运算_goland_12

运算符优先级

go语言基础-类型转换及运算_浮点型_13

总结

go语言的类型转换和运算符,学习起来也算比较简单。

o1over


举报

相关推荐

0 条评论