- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
在我的程序中,我有一个名为 core.Module
的接口(interface)和一个实现此接口(interface)的结构,名为 my_module.MyModule
。创建这些实现我的接口(interface)的结构的函数被添加到映射中,以便稍后按名称调用它们:
type moduleConstructor func() (core.Module, error)
constructors := make(map[string]moduleConstructor)
constructors["name"] = my_module.New
不幸的是,唯一的方法是创建以下 New
函数:
func New() (core.Module, error) {
}
我非常愿意使用推荐的签名:
func New() (*my_module.MyModule, error) {
}
然而,这会导致以下错误:
cannot use my_module.New (type func() (*my_module.MyModule, error)) as type
func() (core.Module, error) in map value
是否有可能以某种方式使映射接受返回实现接口(interface)的结构的函数,而不是直接返回该接口(interface)?
最佳答案
您可以使用一个简单的匿名函数为您的 map 形成兼容的函数签名,而无需更改 my_module.New
定义。匿名函数仍然在其主体中调用 my_module.New
:
constructors["name"] = func New() (core.Module, error) {
return my_module.New()
}
关于go - 不能在映射值中使用 my_module.New(类型 func() (*my_module.MyModule, error))作为类型 func() (core.Module, error),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52030591/
在我的程序中,我有一个名为 core.Module 的接口(interface)和一个实现此接口(interface)的结构,名为 my_module.MyModule。创建这些实现我的接口(inte
我正在尝试让以下行为发挥作用: from my_module import some_random_string 我的模块应该拦截它并根据some_random_string返回某些值。 我尝试设置导
此示例脚本: #!/usr/bin/perl -w while (1) { sleep(1); } 大约需要 264 kB grep -A1 heap /proc/9216/smaps 0817
我已经编写了一个自定义模块,但安装时遇到问题。这是模块的结构。 ├── my_module │ ├── .git │ │ ├── │ ├── build │ │ ├── │
好的,我将代码剥离到极少以说明问题并使其可重现 语境 : Python 3.7 没有 VENV 或有趣的东西 说话便宜。给你看代码: 代码结构: $ tree pymod/ pymod/ ├── mo
我有一个模块 my_module,它由大量文件使用: 从 my_module 导入 * 在模块里面,能知道是哪个文件导入了这个模块吗? 我想知道进行此导入的文件名:line_no。 所以我需要的代码是
我想对我的类进行单元测试,它位于另一个名为 client_blogger.py 的文件中。 我的单元测试文件在同一目录中。我的所有其他单元测试都有效,除非我尝试模拟我自己的方法之一。 ## unit_
我有一个要运行的 Python 脚本。当我从 PyCharm 中运行它时它运行没有问题,但是当我通过终端运行它时使用: python my_script.py 我得到: Traceback (most
我在 my_module 中定义了一个类 MyClass。 MyClass 有一个方法 pickle_myself 可以 pickle 相关类的实例: def pickle_myself(self,
#include #include #include #include #include #include #include #include #include #include
我是一名优秀的程序员,十分优秀!