主页 > 互联网  > 

go类型转换

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"
标签:

go类型转换由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“go类型转换