golang,interface轉換型別 cannot convert t (typ

wangchunbo發表於2021-05-12

問題:

在使用interface表示任何型別時,如果要將interface轉為某一型別,直接強制轉換是不行的,例如:

var t interface{} = "abc"

s := string(t)
cannot convert t(type interface {}) to type string: need type assertion

這樣是不行的,需要進行type assertion型別斷言,具體使用方法請參考:
golang 任何型別interface{}

解決

package main

import (
        "fmt"
)


func main() {

 CheckType("tow", 88, "three")

}



func CheckType(args ...interface{}) {


        for _,v := range args {

                switch v.(type) {

                        case int:

                                fmt.Println("type:int, value:", v)
                        case string:
                                fmt.Println("type:string, value:", v)

                        default:

                                fmt.Println("type:unkown,value:",v)


                }

        }


}
本作品採用《CC 協議》,轉載必須註明作者和本文連結
感謝關注 上海PHP自學中心-免費程式設計視訊教學|

相關文章