import "reflect" func main() { a := 10 b := new(int) c := []int{} d := make(map[string]int) println(reflect.ValueOf(a).Kind().String()) println(reflect.ValueOf(b).Elem().Kind().String()) println(reflect.ValueOf(c).Kind().String()) println(reflect.ValueOf(d).Kind().String()) }打印出什么
时间: 2023-10-09 17:06:07 浏览: 86
这段代码会打印以下内容:
```
int
int
slice
map
```
解释:
- `reflect.ValueOf(a).Kind().String()`:获取 `a` 变量的反射对象,通过 `Kind()` 获取它的类型为 `int`,再通过 `String()` 转换为字符串输出。
- `reflect.ValueOf(b).Elem().Kind().String()`:获取 `b` 变量的反射对象,由于 `b` 是一个 `*int` 类型的指针,需要先通过 `Elem()` 获取指针指向的值的反射对象,再通过 `Kind()` 获取它的类型为 `int`,再通过 `String()` 转换为字符串输出。
- `reflect.ValueOf(c).Kind().String()`:获取 `c` 变量的反射对象,由于 `c` 是一个 `[]int` 类型的切片,直接通过 `Kind()` 获取它的类型为 `slice`,再通过 `String()` 转换为字符串输出。
- `reflect.ValueOf(d).Kind().String()`:获取 `d` 变量的反射对象,由于 `d` 是一个 `map[string]int` 类型的映射,直接通过 `Kind()` 获取它的类型为 `map`,再通过 `String()` 转换为字符串输出。
阅读全文