凡科怎么建站教程百度sem竞价
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") // 输出 trues := 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"