4.1 golang基础语法

系列文章目录


前言

本篇文章主要是记录golang 中常用的中类型转换的方法


一、Golang 类型常见的转换

类型转换可以分为两类: 同一类型转换和不同类型的数据转换;
同一类型数据转换: 数字和数字 字符串和字符和字节
不同类型数据转换: 数字和字符串
接口类型转化其它类型

二、具体实例分析

1.同类型转换

代码如下( 数字类型转换):

// 数字类型转换

var num1 int = 100

fmt.Println(int64(num1))

var num2 int64 = 100

fmt.Println(int(num2))

2.不同类型转换

2.1 数字和字符串转

数字和字符串转换需要借助strconv 方法
代码如下(字符串 与数字转换):

// 字符串 与数字转换
var num3 int = 100
fmt.Println(strconv.Itoa(num3) + "abc")

var str1 string = "100"
fmt.Println(strconv.Atoi(str1))

var num4 int64 = 1010
fmt.Println(strconv.FormatInt(num4, 10))

var str2 = "1010"
fmt.Println(strconv.ParseInt(str2, 10, 64))

2.2 字符串与[]byte转换

代码如下( 字符串与[]byte转):

// 字符串与[]byte 转换  可以当作是同一类型转换
var str3 = "今天天气很好"
byte1 := []byte(str3)
fmt.Println(byte1)

fmt.Println(string(byte1))

2.3 字符串与rune转化

代码如下( 字符串与rune转化):

// 字符串与rune转化
// rune 为int32类型
// 将字符串转换为rune切牌你,实际上rune切片中存储了字符串Unicode码点

var rune1 = []rune(str3)
fmt.Println(rune1)
fmt.Println(string(rune1))
fmt.Println(string(rune1[3]))
fmt.Println([]int32(str3))

2.4 接口类型转具体类型

代码如下( 接口类型转具体类型):

// 接口类型转具体类型
// 通过断言处理
var inf interface{} = 100
var infStruct interface{} = user{Name: "fischer"}
i, ok := inf.(int)
fmt.Println(i, ok)
u, ok := infStruct.(user)
fmt.Println(u, ok)

2.5 时间类型转字符串

代码如下( 时间类型转字符串):

// 时间类型转字符串
var t time.Time
t = time.Now()
// 注意后面的格式是固定这么写
timeStr := t.Format("2006-01-02 15:04:05Z07:00")
fmt.Println(timeStr)

// 字符串转时间
t2, _ := time.Parse("2006-01-02 15:04:05Z07:00", timeStr)
fmt.Println(t2)

2.6 uintptr

代码如下( uintptr):

// uintptr
u1 := user{}
// unsafe.Pointer()是通用指针类型, 不能用于计算
uPtr := unsafe.Pointer(&u1)

namePtr := unsafe.Pointer(uintptr(uPtr) + unsafe.Offsetof(u1.Name))
*(*string)(namePtr) = "fischer"
fmt.Println(u1)

总结

提示:这里对文章进行总结:

参考

文章参考与<零声教育>的C/C++linux服务期高级架构系统教程学习:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值