在Scala中模仿C#out和ref - 准备使用功能?

时间:2012-01-11 21:28:10

标签: scala ref out

在有限的意义上,自己编写outref类非常容易,但我的问题不是如何做到 - 但是否有一些功能(或类) )准备好了吗?

我发现最接近的是Reference特质(但它是一种特质)。

我需要那些,而不是元组,而不是Option,而不是纯粹的结果,因为只有ref / out才能使链接优雅。

1 个答案:

答案 0 :(得分:5)

不,Scala支持按值或按名称传递参数。通过引用传递的参数实际上很难在JVM中正确完成,这可能是没有一种流行的JVM语言拥有它的原因之一。另外,out和ref参数鼓励通过副作用进行编程,这是Scala设计中尽可能避免的。

至于if的链接,有很多方法可以实现像Scala那样的效果。 “匹配”表达式是最明显的,您也可以使用Option或Either查看monadic组合。