在许多其他语言中,我们可以创建通用的异步可迭代类型,例如Go 中的Observable<T>Rx 变体chan T。
Julia 的协程抽象Task是一个类似的构造,可以在(轻量级)线程之间传递对象。Julia 是否有方法来注释这些对象的类型?
我想创建一个接受 aTask作为参数的函数,并且能够表达任务发出的对象的类型。例如,如果Task是泛型类型,我会想象:
function foo(socket::Task{String})
for word in socket
println(word)
end
end
Run Code Online (Sandbox Code Playgroud)
for更一般地说,是否存在可使用(或使用start//next的其他方法)进行迭代的对象的抽象类型,done以便我可以在函数签名中进行注释?