6

go语言之类型转换_zzxiaoma的技术博客_51CTO博客

 1 year ago
source link: https://blog.51cto.com/u_3764469/5701966
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

go语言之类型转换

精选 原创

zzxiaoma 2022-09-22 08:28:56 博主文章分类:go ©著作权

文章标签 类型转换 字符串 取值范围 文章分类 Go语言 编程语言 yyds干货盘点 阅读数176

go语言的类型不能混合使用

fmt.Println("abc" + 1)

会报字符串和整数不能这么操作

se := 12.0
wu := 5
fmt.Println(se * wu)
(mismatched types float64 and int)

一个是float一个是int不允许操作

例如上面,我们需要把wu这个变量类型转换为float64.

fmt.Println(se * float64(wu))

通过数据类型同名的函数包裹着变量就可以返回新类型。当然也可以把float类型转成int,但是这样会把小数部分直接截断。

mm := 12.5
fmt.Println(int(mm))

但是直接使用常量就不行了。

fmt.Println(int(12.5))

总得来说一般从取值范围小的类型转换为取值范围大的类型总是安全的,其他方式的类型转换则存在风险。有一个技巧,就是把范围大的类型转为小范围类型时,用值与小范围的值进行比较,看是否在范围之内,如果在才允许转换。

fmt.Println("abc" + strconv.Itoa(1))

通过strconv.Itoa(1)把数字1转成字符串再进行合并就没有问题了。

hh, _ := strconv.Atoi("1")
fmt.Println(hh)

通过strconv.Atoi可以把字符串转换成数字,这样就可以使用数字进行相应的运算。

布尔值转成字符串

nn := false
nntext := fmt.Sprintf("%v", nn)
fmt.Println(nntext)

字符串转换成布尔值

ok := "no"
oo := (ok == "yes")
fmt.Println(oo)

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK