簡體   English   中英

scala new步長等於零的范圍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM