面试题答案
一键面试package main
import (
"fmt"
"reflect"
)
func main() {
var num int = 10
valueOf := reflect.ValueOf(num)
typeOf := reflect.TypeOf(num)
fmt.Printf("值: %v\n", valueOf)
fmt.Printf("类型: %v\n", typeOf)
}
- 引入包:
fmt
用于格式化输出,reflect
用于反射操作。 - 定义变量:定义一个
int
类型的变量num
并赋值为10
。 - 获取值:通过
reflect.ValueOf(num)
获取变量的Value
信息。 - 获取类型:通过
reflect.TypeOf(num)
获取变量的Type
信息。 - 输出:使用
fmt.Printf
输出变量的值和类型。
如果要处理不同类型,可以将变量定义部分改为函数参数形式,如下:
package main
import (
"fmt"
"reflect"
)
func printValueAndType(i interface{}) {
valueOf := reflect.ValueOf(i)
typeOf := reflect.TypeOf(i)
fmt.Printf("值: %v\n", valueOf)
fmt.Printf("类型: %v\n", typeOf)
}
func main() {
var num int = 10
var str string = "hello"
printValueAndType(num)
printValueAndType(str)
}
这里定义了一个函数 printValueAndType
,接收一个空接口类型的参数,这样可以处理任意类型的变量。在 main
函数中,分别传入 int
类型和 string
类型的变量进行处理。