我不知道之间的区别:
alts!
和
alt!
在Clojure的core.async中。
最佳答案
alts!
是函数,它接受要从中获取的通道 vector 和/或带有要置于其上的值的通道(以doubleton vector 形式:[c v]
)。可以动态地构建 vector 。调用alts!
的代码可能不知道它将在其中选择多少个通道(实际上,在调用之间该数量不必保持恒定)。alt!
是便利的宏,基本上充当cond
和alts!
之间的交叉。在这里,“端口”(通道或通道+值对)的数量必须是静态已知的,但实际上,这种情况经常发生,并且类似于cond
的语法非常清楚。alt!
使用alts!
扩展为一个较为复杂的表达式;除了语法上的便利之外,它没有提供任何额外的功能。