相关疑难解决方法(0)

调用具有特殊前缀/后缀的函数

我有一个名为"seeder"的包:

package seeder

import "fmt"

func MyFunc1() {
    fmt.Println("I am Masood")
}

func MyFunc2() {
    fmt.Println("I am a programmer")
}

func MyFunc3() {
    fmt.Println("I want to buy a car")
}
Run Code Online (Sandbox Code Playgroud)

现在我想用MyFunc前缀调用所有函数

package main

import "./seeder"

func main() {
    for k := 1; k <= 3; k++ {
        seeder.MyFunc1() // This calls MyFunc1 three times
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

for k := 1; k <= 3; k++ {
    seeder.MyFunc + k ()
}
Run Code Online (Sandbox Code Playgroud)

而这个输出:

I am Masood
I am a programmer
I …
Run Code Online (Sandbox Code Playgroud)

string function go

16
推荐指数
1
解决办法
2046
查看次数

Go 中是否有相当于 Python 的“dir”的东西?

我从Python过渡到Go 时遇到了一些困难,而且我历来依赖内置实用程序函数(例如Pythondir )来列出底层方法和属性。

go中有等效的吗?

python struct interface built-in go

6
推荐指数
0
解决办法
1183
查看次数

从golang的包中获取导出函数的列表

假设我有一些包裹

// ./somepkg/someFile.go
package somepkg
import "fmt"
func AnExportedFunc(someArg string) {
    fmt.Println("Hello world!")
    fmt.Println(someArg)
)
Run Code Online (Sandbox Code Playgroud)

然后从我的主要go文件导入

// ./main.go
package main
import (
    "./somepkg" // Let's just pretend I have the full path written out
    "fmt"
)

func main() {
    fmt.Println("I want to get a list of exported funcs from package 'somefolder'")
}
Run Code Online (Sandbox Code Playgroud)

有没有办法从软件包“ somepkg”访问导出的函数,然后调用它们?参数编号/类型在somepkg中的所有函数之间将是一致的。我已经查看了反射包,但不确定是否可以获取列表并调用函数而不知道包名以外的任何信息。但是,我可能会缺少godocs中的某些内容,因此不胜感激。我想要做的基本上是拥有一个系统,人们可以在其中插入.go文件,作为一种“插件”。这些“插件”将具有一个导出的函数,主程序本身将使用一致的数量和类型的args对其进行调用。对此代码库的访问受到限制,因此贡献者可以随意执行任何代码,因此不会产生安全隐患。

注意:所有内容均已编译,因此没有运行时限制

我想做的是用python写的东西

# test.py
def abc():
    print "I'm abc"

def cba():
    print "I'm cba"
Run Code Online (Sandbox Code Playgroud)

# foo.py
import test
flist = filter(lambda fname: fname[0] != "_", …
Run Code Online (Sandbox Code Playgroud)

go

5
推荐指数
1
解决办法
2821
查看次数

标签 统计

go ×3

built-in ×1

function ×1

interface ×1

python ×1

string ×1

struct ×1