gpt4 book ai didi

scala - 随机洗牌不适用于范围

转载 作者:行者123 更新时间:2023-12-04 07:53:44 24 4
gpt4 key购买 nike

在 java 7 上运行的 Scala 版本 2.10.3

import scala.util.Random
Random.shuffle(0 to 4) // works
Random.shuffle(0 until 4) // doesn't work

:9: 错误:无法基于 scala.collection.AbstractSeq[Int] 类型的集合构造具有 Int 类型元素的 scala.collection.AbstractSeq[Int] 类型的集合。

错误消息似乎真的只告诉我“你不能那样做”。任何人都知道为什么?

最佳答案

Scala 将错误的类型参数推断为 shuffle .您可以通过以下方式强制工作:

Random.shuffle[Int, IndexedSeq](0 until 4)

或 splinter 的:
Random.shuffle[Int, AbstractSeq](0 to 4)

我不知道为什么它为 Range 提供了错误的参数,由 until 返回,但对 Range.Inclusive 来说是正确的,由 to 返回. Range.Inclusive直接子类 Range没有混合任何特征,所以不应该有任何不同的对待。对我来说,这看起来像是 Scala 错误。

关于scala - 随机洗牌不适用于范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23524081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com