我真的是 golang 的新手,我正在努力学习基础知识。我写了一段这样的代码:
package main
import (
"log"
"reflect"
)
if reflect.TypeOf([]string{"a"}).Elem() == reflect.String {
log.Println("success")
}
if reflect.TypeOf([]int{1}).Elem() == reflect.Int{
log.Println("success")
}
if reflect.TypeOf([]float64{1.00}).Elem() == reflect.Float64 {
log.Println("success")
}
当我运行这段代码时,出现错误
invalid operation: reflect.TypeOf([]string literal).Elem() == reflect.String (mismatched types reflect.Type and reflect.Kind)
我不明白文档 https://golang.org/pkg/reflect/因为我找不到如何引用不同“类型”或“种类”的示例
我应该如何编写 if 语句来进行我正在尝试的比较?
最佳答案
reflect.Type
是一个接口(interface)
,带有一个名为Kind()
的方法。根据文档:
// Kind returns the specific kind of this type.
Kind() Kind
所以你应该写:
if reflect.TypeOf([]string{"a"}).Elem().Kind() == reflect.String {
log.Println("success")
}
关于go - 如何使用 reflect.TypeOf([]string {"a"}).Elem()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51228878/