主页 > 知识库 > go 类型转换方式(interface 类型的转换)

go 类型转换方式(interface 类型的转换)

热门标签:外呼系统显本地手机号 excel地图标注分布数据 涿州代理外呼系统 阿克苏地图标注 百度地图标注后传给手机 电话机器人软件免费 外呼系统用什么卡 寿光微信地图标注 评价高的400电话办理

go 在做类型转换时,报错:

cannot convert m (type interface {}) to type Msg: need type assertion

原因:

go 的在 interface 类型转换的时候, 不是使用类型的转换, 而是使用

t,ok := i.(T)

例子:

//处理网络消息
func ProcessMsg(m interface{}){
    //var a interface{} = m
    //Msg(m)
    msg := m.(*Msg)

补充:go []interface{}的类型转换

看代码吧~

package main 
import (
    "fmt"
    "strings"
)
 
func getName(params ...interface{}) string {
    var stringSlice []string
    for _, param := range params {
        stringSlice = append(stringSlice, param.(string))
    }   
    return strings.Join(stringSlice, "_")
}
 
func main() {
    fmt.Println(getName("redis", "slave", "master"))
}

上面的代码如果类型不匹配,会产生panic错误,如果想不产生panic错误

str, ok := param.(string)

如果ok为false,则str为空,不报错。

也可以这样:

package main 
import (
    "fmt"
    "reflect"
    "strings"
)
 
func getName(params ...interface{}) string {
    var stringSlice []string
    for _, param := range params {
        stringSlice = append(stringSlice, param.(string))
    }   
    return strings.Join(stringSlice, "_")
}
 
func main() {
    var aa []interface{} = make([]interface{}, 3)
    aa[0] = "redis" 
    aa[1] = "slave" 
    aa[2] = "master" 
    fmt.Println(reflect.TypeOf(aa))
    fmt.Println(reflect.TypeOf(aa[0]))
    fmt.Println(getName(aa...))
}

输出:

[]interface {}

string

redis_slave_master

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

您可能感兴趣的文章:
  • 手把手教你导入Go语言第三方库
  • golang gopm get -g -v 无法获取第三方库的解决方案
  • golang 输出重定向:fmt Log,子进程Log,第三方库logrus的详解
  • golang值类型转换成[]uint8类型的操作
  • Mongodb 利用mongoshell进行数据类型转换的实现方法
  • Go语言string,int,int64 ,float之间类型转换方法
  • GO语言类型转换和类型断言实例分析
  • Go 第三方库之类型转换问题

标签:铜川 汕头 钦州 兰州 重庆 吐鲁番 梅河口 鸡西

巨人网络通讯声明:本文标题《go 类型转换方式(interface 类型的转换)》,本文关键词  类型,转换,方式,interface,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《go 类型转换方式(interface 类型的转换)》相关的同类信息!
  • 本页收集关于go 类型转换方式(interface 类型的转换)的相关信息资讯供网民参考!
  • 推荐文章