[英]scala new Range with step equals zero
是(和為什么)這應該被禁止,但例外?
scala> val r2 = 15 until (10, 0)
java.lang.IllegalArgumentException: requirement failed
scala> new Range(10,15,0)
java.lang.IllegalArgumentException: requirement failed
at scala.Predef$.require(Predef.scala:133)
是(和為什么)這應該被禁止,但例外?
引自scaladoc :
Range類表示范圍為[start; end]的整數值, 步長為非零步長值。 類似於序列的行為(支持長度和包含)。
這種限制是有道理的。 步長為零的范圍始終為infine,只包含下限值。 雖然有人可能認為無限范圍是可能的(懶惰評估),但范圍上限的概念將被視為荒謬。 步驟0的范圍不是范圍 ,即使它是無限長的,因為上限沒有重要性。
因此,如果一個人真的想要一個單一值的無限流,Scala正確地迫使我們更加明確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.