当前位置: 首页 > news >正文

go类型转换

1. 接口隐式转换

在 Go 语言中,接口隐式转换是指当一个具体类型(如结构体)实现了某个接口(或父类)的所有方法时,该类型的实例(值或指针)可以直接赋值给接口类型的变量,无需显式类型转换。

type Fruit interface {
    GetName() string
}

type Banana struct {
    Name string
}

func (b Banana) GetName() string { // 实现接口方法
    return b.Name
}

var fruit Fruit  // 接收值类型或指针类型都合法

// 值类型隐式转换
banana1 := Banana{Name: "red"}
fruit = banana1 // ✅ 合法

// 指针类型隐式转换
banana := &Banana{Name: "yellow"}
fruit = banana // ✅ 合法

2. strconv包

strconv包提供了字符串与基本数据类型之间的转换功能。
应该在转换后检查错误,避免因非法输入导致程序崩溃。

// string转十进制
num, err := strconv.Atoi("123")
// string转自定义进制(16进制)
num, err := strconv.ParseInt("1a", 16)

num, err := strconv.ParseFloat("3.14", 64) // 第二个参数指明精度(32/64位)
b, err := strconv.ParseBool("TRUE") // 输出 true

s := strconv.Itoa(42)         // 十进制转string
s = strconv.FormatInt(42, 16)  // 十六进制(0x开头)
s = strconv.FormatInt(42, 2)   // 二进制

s := strconv.FormatFloat(3.14159, 'f', 2, 64) // 格式化为 "3.14"
s = strconv.FormatFloat(math.Pi, 'e', 3, 64) // 科学计数法 "3.142e+00"

相关文章:

  • Docker 模拟 kubernetes 的 pod
  • 【C++】:STL详解 —— priority_queue类
  • docker关闭mysql端口映射的使用
  • 计算机基础面试(数据结构)
  • Laravel从入门到精通:开启高效开发之旅
  • C++:多态与虚函数
  • Leetcode 刷题记录 01 —— 哈希
  • 《Java 加密工具与技术》8: X.509证书和属性证书
  • 【计算机网络】考研复试高频知识点总结
  • Android Studio 安装2022版稳定版 2022.3.1 详细操作(带图展示)
  • 机器学习算法——分类任务
  • 【网络安全 | 漏洞挖掘】分享21个基础漏洞案例
  • 两台Win电脑局域网ssh免密登录
  • 【股票数据API接口49】如何获取股票历史交易数据之Python、Java等多种主流语言实例代码演示通过股票数据接口获取数据
  • Spring事务
  • 如何停止Oracle expdp/impdp job
  • unity pico开发二:连接头盔,配置手柄按键事件
  • MySQL快速搭建主从复制
  • springboot gradle 多项目创建
  • 《鸢尾花数学大系:从加减乘除到机器学习》开源资源
  • 德州网站seo/平台推广文案
  • 金华专业网站制作/网络营销评价的名词解释
  • 网站推广中的评估指标有哪些/网站运营推广的方法有哪些
  • 网站建设流程案例/网站制作建设公司
  • 六安属于哪里/广州新塘网站seo优化
  • 创建一个网站需要多少钱/专业关键词优化平台