我真的很喜欢在Scala编写新类时使用require
检查。但我担心他们可能会增加的性能成本。斯卡拉'需要'是否会导致性能损失?
所以主要的问题 - 是否有使用require
成本? 现在我假设每次创建一个类的实例时,都会检查require
中的条件,这是唯一的成本。但我不确定,也许还有其他一些处罚,或者相反,它可能会以一些棘手的方式进行优化。
我意识到,在大多数情况下,即使存在性能损失,与效益相比,其效果可以忽略不计。但是关于下面的例子是什么:
我产生了一些类的多(100万)的情况下,由两个字段和三个功能,蒙特卡罗模拟过程,并执行与这些实例一些简单的操作。你会建议使用require
这种情况?
我不能肯定地说,但在此基础上其他[提问](http://stackoverflow.com/questions/8002835/what-is-the-meaning-of-an-assumption-in-scala-compared看来只有'assert'和'assume'被禁用。还有[this](http://xuwei-k.github.io/scala-library-sxr/scala-library-2.10.0/scala/Predef.scala.html)和[this](http:// www .scala-lang.org/files/archive/api/current/scala/annotation/elidable.html)似乎支持'require'不能切换的事实。 – nevets1219
谢谢,你的回答帮助我认识到'require'只是一个常用的功能,可以在任何地方使用。不幸的是,在许多Scala教程和书籍中,“require”仅作为构造函数的一部分被引入,没有任何额外的解释,这导致我感到困惑。 – GrayR