首页
Preview

golang 获取当前函数的所有参数

在 Go 语言中,可以使用反射机制获取当前函数的所有参数。以下是一个示例代码:

package main

import (
    "fmt"
    "reflect"
)

func main() {
    foo("hello", 42, true)
}

func foo(args ...interface{}) {
    funcType := reflect.TypeOf(foo)
    if funcType.Kind() != reflect.Func {
        return
    }
    numArgs := funcType.NumIn()
    fmt.Println("Function has", numArgs, "arguments:")
    for i := 0; i < numArgs; i++ {
        argType := funcType.In(i)
        fmt.Println("    Arg", i+1, "type:", argType)
    }
}

在这个例子中,我们定义了一个函数 foo,它接受任意数量的参数。在 main 函数中,我们调用 foo 并传入三个参数。在 foo 函数中,我们使用反射机制获取当前函数的类型,并通过 NumIn() 方法获取该函数的参数数量。然后,我们可以通过 In() 方法逐个获取每个参数的类型。在这个例子中,我们只是简单地打印出每个参数的类型,但你可以根据需要执行任何操作。

版权声明:本文内容由TeHub注册用户自发贡献,版权归原作者所有,TeHub社区不拥有其著作权,亦不承担相应法律责任。 如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

点赞(0)
收藏(1)
hossein
暂无描述

评论(0)

添加评论