主頁 > 知識庫 > go 類型轉(zhuǎn)換方式(interface 類型的轉(zhuǎn)換)

go 類型轉(zhuǎn)換方式(interface 類型的轉(zhuǎn)換)

熱門標(biāo)簽:外呼系統(tǒng)顯本地手機號 excel地圖標(biāo)注分布數(shù)據(jù) 涿州代理外呼系統(tǒng) 阿克蘇地圖標(biāo)注 百度地圖標(biāo)注后傳給手機 電話機器人軟件免費 外呼系統(tǒng)用什么卡 壽光微信地圖標(biāo)注 評價高的400電話辦理

go 在做類型轉(zhuǎn)換時,報錯:

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

原因:

go 的在 interface 類型轉(zhuǎn)換的時候, 不是使用類型的轉(zhuǎn)換, 而是使用

t,ok := i.(T)

例子:

//處理網(wǎng)絡(luò)消息
func ProcessMsg(m interface{}){
    //var a interface{} = m
    //Msg(m)
    msg := m.(*Msg)

補充:go []interface{}的類型轉(zhuǎn)換

看代碼吧~

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"))
}

上面的代碼如果類型不匹配,會產(chǎn)生panic錯誤,如果想不產(chǎn)生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

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 手把手教你導(dǎo)入Go語言第三方庫
  • golang gopm get -g -v 無法獲取第三方庫的解決方案
  • golang 輸出重定向:fmt Log,子進程Log,第三方庫logrus的詳解
  • golang值類型轉(zhuǎn)換成[]uint8類型的操作
  • Mongodb 利用mongoshell進行數(shù)據(jù)類型轉(zhuǎn)換的實現(xiàn)方法
  • Go語言string,int,int64 ,float之間類型轉(zhuǎn)換方法
  • GO語言類型轉(zhuǎn)換和類型斷言實例分析
  • Go 第三方庫之類型轉(zhuǎn)換問題

標(biāo)簽:銅川 汕頭 欽州 蘭州 重慶 吐魯番 梅河口 雞西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《go 類型轉(zhuǎn)換方式(interface 類型的轉(zhuǎn)換)》,本文關(guān)鍵詞  類型,轉(zhuǎn)換,方式,interface,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《go 類型轉(zhuǎn)換方式(interface 類型的轉(zhuǎn)換)》相關(guān)的同類信息!
  • 本頁收集關(guān)于go 類型轉(zhuǎn)換方式(interface 類型的轉(zhuǎn)換)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章