猿问

反映 []byte 的值

如何检索此接口的 []byte 值?


package main


import (

    "reflect"

)


func byteInterface() interface{} {

    return []byte("foo")

}


func main() {

    //var b []byte

    i := byteInterface()


    switch {

    case reflect.TypeOf(i).Kind() == reflect.Slice && (reflect.TypeOf(i) == reflect.TypeOf([]byte(nil))):


    default:

        panic("should have bytes")

    }

}


繁星淼淼
浏览 160回答 1
1回答

慕村225694

您可以为此使用类型断言;无需使用reflect包:package mainfunc byteInterface() interface{} {    return []byte("foo")}func main() {    i := byteInterface()    if b, ok := i.([]byte); ok {      // use b as []byte      println(len(b))    } else {      panic("should have bytes")    }}
随时随地看视频慕课网APP

相关分类

Go
我要回答