为了账号安全,请及时绑定邮箱和手机立即绑定

如何对 interface{} 变量进行类型断言以测试它是否为函数?

如何对 interface{} 变量进行类型断言以测试它是否为函数?

Go
蝴蝶刀刀 2021-08-23 15:24:04
我正在尝试编写一个函数,它接受某种类型的任意类型的内容,或者一个可以生成和返回任意类型的函数。要做到这一点,我必须能够通常测试一个参数是否是一个函数,而不测试它是否是一个返回类型 X 的函数。我该怎么做?可能如下所示:func Blah(arbitrary interface{}) {    var value interface{}    if function, ok := arbitrary.(func interface{}); ok {        value = function()    } else {        value = arbitrary    }    ...}这将失败。也许类型断言不是在这里使用的东西。或者也许我只是不知道语法。将不胜感激任何建议。我目前唯一知道要做的就是将其分为两个函数,一个接受要按原样存储的数据,另一个期望获得一个函数,但这在两种情况下的目标只是获得一个值并将其传递给函数的其余部分。对此有何想法?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 200 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信