MST

星途 面试题库

面试题:Go反射实现通用基础类型校验

假设你需要实现一个通用的函数,能够接收任意基础类型作为参数,并使用反射来校验该参数是否满足特定条件(例如,对于 `int` 类型,判断是否大于10;对于 `string` 类型,判断长度是否大于5)。请描述实现的设计思路,并给出核心代码片段。
10.6万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
  1. 设计思路
    • 使用Go语言的反射包reflect来获取传入参数的类型和值。
    • 根据参数的具体类型,进行相应的条件判断。例如,对于int类型判断是否大于10,对于string类型判断长度是否大于5等。
  2. 核心代码片段(以Go语言为例)
package main

import (
    "fmt"
    "reflect"
)

func validateParam(param interface{}) bool {
    value := reflect.ValueOf(param)
    switch value.Kind() {
    case reflect.Int:
        return value.Int() > 10
    case reflect.String:
        return value.Len() > 5
    default:
        return false
    }
}

可以通过以下方式调用该函数:

func main() {
    num := 15
    str := "hello world"
    fmt.Println(validateParam(num))
    fmt.Println(validateParam(str))
}