在Java 7上运行的Scala版本2.10.3
import scala.util.Random
Random.shuffle(0 to 4) // works
Random.shuffle(0 until 4) // doesn't work
Run Code Online (Sandbox Code Playgroud)
:9:错误:无法根据类型为scala.collection.AbstractSeq [Int]的集合构造类型为int的元素scala.collection.AbstractSeq [Int]的集合.
错误消息似乎真的只告诉我"你做不到".任何人都有任何洞察力为什么?
Scala推断出错误的类型参数shuffle.您可以强制使用以下工作:
Random.shuffle[Int, IndexedSeq](0 until 4)
Run Code Online (Sandbox Code Playgroud)
或破碎的:
Random.shuffle[Int, AbstractSeq](0 to 4)
Run Code Online (Sandbox Code Playgroud)
我不知道它为什么会出现错误的参数Range,如返回的until,但正确的参数Range.Inclusive,如返回to.Range.Inclusive直接子类Range而不混合任何特征,因此不应对其进行任何不同的处理.这对我来说就像是一个Scala bug.
| 归档时间: |
|
| 查看次数: |
1163 次 |
| 最近记录: |