如何在不暴露实现对象的情况下创建Julia API

时间:2016-07-20 16:01:32

标签: api julia

我想在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 

我不知何故觉得这不是正确的方法。

请帮忙。谢谢!

1 个答案:

答案 0 :(得分:1)

如果你真的想限制用户总是(隐含地)使用相同的实现对象,上面的例子似乎很好。

如果您为用户提供了根据需要创建自己的实现对象的方法,那么如果用户没有指定,那么重载do_something的方式也会提供默认值。这类似于基础Julia中的printrand分别使用默认输出流和随机数生成器的情况,如果您不提供默认输出流和随机数生成器。