【问题标题】:Checking types of slices in golang在 golang 中检查切片的类型
【发布时间】:2014-08-05 07:48:38
【问题描述】:

我使用反射包来检查我的变量的类型。例如,如果我想检查 var 是否为整数,我会这样做:

reflect.TypeOf(var).Kind == reflect.Int

如何检查我的变量是 int 还是 float 切片?

我只能将 Slice 视为 Kind() 返回的类型之一,但这个 slice 可以是任何类型

【问题讨论】:

    标签: go


    【解决方案1】:

    如果类型是切片,Elem() 将返回底层类型:

    func main() {
        foo := []int{1,2,3}
        fmt.Println(reflect.TypeOf(foo).Elem()) //prints "int"
        fmt.Println(reflect.TypeOf(foo).Elem().Kind() == reflect.Int) //true!
    }
    

    当然,你最好先检查一下它是不是切片。

    【讨论】:

      猜你喜欢
      • 2014-08-08
      • 2013-10-23
      • 2016-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-27
      • 1970-01-01
      相关资源
      最近更新 更多