当前位置: 首页 > 面试题库 >

从Golang中的功能列表中选择一个功能

符佐
2023-03-14
问题内容

基本上,如果我有任意函数的切片或数组,如何选择仅返回int的函数或仅选择采用int的函数?

我认为我需要使用反射包,但是仅仅阅读文档并不能真正帮助我准确地知道如何做。


问题答案:

该程序打印以a int为参数或返回a 的函数int

package main

import (
    "fmt"
    "reflect"
)

func main() {
    funcs := make([]interface{}, 3, 3) // I use interface{} to allow any kind of func
    funcs[0] = func (a int) (int) { return a+1} // good
    funcs[1] = func (a string) (int) { return len(a)} // good
    funcs[2] = func (a string) (string) { return ":("} // bad
    for _, fi := range funcs {
        f := reflect.ValueOf(fi)
        functype := f.Type()
        good := false
        for i:=0; i<functype.NumIn(); i++ {
            if "int"==functype.In(i).String() {
                good = true // yes, there is an int among inputs
                break
            }
        }
        for i:=0; i<functype.NumOut(); i++ {
            if "int"==functype.Out(i).String() {
                good = true // yes, there is an int among outputs
                break
            }
        }
        if good {
            fmt.Println(f)
        }
    }
}

我认为代码是不言自明的



 类似资料:
  • 我试图让用户从JSF中的下拉列表中选择一个集合项。这是我正在使用的代码: 这是MyBean的代码: 如果需要,我的getter和setter为用户: 我的问题是,当它打印“所选用户是”时,没有写入用户。toString(),但用户列表。toString()!就像SelectOne菜单一样,它的设置不正确,但我已经搜索了很多。有人能帮忙吗?谢谢,安

  • 问题内容: 我正在用go编写一个简单的模拟器(我应该还是应该回到c?)。无论如何,我正在获取指令并对其进行解码。在这一点上,我有一个字节,如0x81,我必须执行正确的功能。 我应该有这样的东西吗 或类似的东西 1.哪个更好? 2.哪个更快? 还可以 3.我可以内联声明一个函数吗? 4.我有一个 我有寄存器等的地方。如果我有寄存器并且全部作为全局变量会更快吗?(没有) 非常感谢你。 问题答案: 第一

  • 问题内容: 如何使用JOIN从一个表中选择所有列,从另一个表中仅选择一些列?在MySQL中。 问题答案: 只需使用表名: 这将选择所有列和列和从。

  • 假设我有以下功能文件: 我ogin.feature 功能:登录网站 场景:现场登录验证 给定导航到站点登录页 家特色 功能:欢迎页面验证 场景:验证登录后出现的页面 已成功完成给定登录 登录成功后的页面出现时 然后测试完成 在Home.feature文件中,我需要先执行Login.feature,然后调用home.feature.所以当我从运行器测试中执行home时,它会依次执行login,然后是

  • 问题内容: 我有2个表,一个包含我需要的最终结果,另一个包含我需要根据设定级别选择的列列表。 例如 : 所以,如果我做以下 然后,基本上我需要使用此select语句中的列名来确定从另一条语句中选择了哪些列。 香港专业教育学院尝试过的方法,我当然知道这是错的,但可以让我对我试图做的事情有所了解。 我试图以一种动态方式构建一个sql查询,该查询可以通过我放在表中的任何列进行更改。 从理论上讲,这应与以

  • 本文向大家介绍Android组件实现列表选择框功能,包括了Android组件实现列表选择框功能的使用技巧和注意事项,需要的朋友参考一下 android提供的列表选择框(Spinner)相当于web端用户注册时的选择下拉框,比如注册候选择省份城市等。如下图便是一个列表选择框 下拉列表的列表选择项能够通过xml文件的android:entries属性指定,或是在java代码中导入,属性android: