• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

go基础第九篇:类型转换

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、数字型 int、int8、int16、int32、int64

1)数字型转数字型:
直接用目标数字型后面跟括号包裹源数字型变量即可,如想把int a转为int32,则操作是int32(a)。把int64 b转为int32,操作是int32(b)。

2)数字型与bool型不能互转。

3)数字型与string互转:

①int:

int转string:strconv.Itoa()

string转int:strconv.Atoi()

②int64:
int64转string:strconv.FormatInt(i int64, base int),第一个参数是待转换的int64变量,第二个参数是进制数,如2进制、10进制、16进制
string转int64:(int64, error) ParseInt(s string, base int, bitSize int),第一个参数是要转换的字符串,第二个参数是进制数,如2进制、10进制、16进制,第三个参数是位数,可选值有0、8、16、32、64,转换后的变量虽然编译时类型为int64,但是运行时类型可能是int、int8、int16、int32、int64,依据第三个参数。所以,第三个参数如果传递的不合适的话,转换后的变量值就可能不是我们想要的。如

a := "256"

b, _ := strconv.ParseInt(a, 10, 8)

由于int8的取值范围是[-128,127],所以a转换后超出了int8的取值范围,实测转换后的值为127,即int8的上限值。

③其他数字类型:

得先转为int或者int64型,再转为string。

string也得先转为int或者int64型,然后再转为其他数字类型。

4)数字型与interface{}互转:
数字型可以直接作为interface{}型使用,interface{}型转为数字型,只需interface{}型变量.(目标类型),如

var a interface{} = 3;

var b = a.(int);

var c int32 = a.(int32)
注意,go中没有隐式转换。如果var d string = a.(string),虽然不会报编译错误,但是运行时会报错误。

 

二、布尔型 bool

1)bool与string互转:
bool转string:strconv.FormatBool()

string转bool:(bool, error) strconv.ParseBool(),不仅仅可以接受大写、小写的true、false字符串,还可以接受 "1", "t", "T", "True", "0", "f", "F", "False",其他入参的话,第一个返回值是false,第二个返回值不是nil,而是错误信息。
2)bool与interface{}互转:
bool可以直接作为interface{}型使用,interface{}型转为bool型,只需interface{}型变量.(bool)。

 

三、字符串型 string

1)string与interface{}互转:
string可以直接作为interface{}型使用,interface{}型转为string型,只需interface{}型变量.(string)。

2)string与[]byte互转

 

四、interface{}

任何类型都可以直接作为interface{}型使用,interface{}型转为其他类型,只需interface{}型变量.(目标类型)。

 

五、不同类型数字比较 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[日常]Go语言圣经--Channel习题发布时间:2022-07-10
下一篇:
Go的定时任务模块Cron使用发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap