我想在Julia中创建一个没有函数定义中的实现对象的API。
我想要
result1 = do_something(arg1, arg2)
result2 = do_somethingelse(arg3)
而不是
obj = ImplementationObject()
result1 = do_something(obj, arg1, arg2)
result2 = do_somethingelse(obj, arg3)
我想到了这个
module MyModule
import objModule
obj = ImplementationObject()
function do_something(arg1, arg2)
do_something(obj, arg1, arg2)
end
end
我不知何故觉得这不是正确的方法。
请帮忙。谢谢!
答案 0 :(得分:1)
如果你真的想限制用户总是(隐含地)使用相同的实现对象,上面的例子似乎很好。
如果您为用户提供了根据需要创建自己的实现对象的方法,那么如果用户没有指定,那么重载do_something
的方式也会提供默认值。这类似于基础Julia中的print
和rand
分别使用默认输出流和随机数生成器的情况,如果您不提供默认输出流和随机数生成器。