1
我有一個scala對象,如下所示,當我輸入REPL時,它只是在vec語句中顯示REPL中的向量。但是,如果我使用方法def randomNumbers的返回類型Vector [Int],它會給出編譯錯誤爲什麼?具有特性和具體類的scala返回類型
val vec = for (i <- 0 to 100) yield ((r.nextInt(100 - 10) + 1) + 10)
scala.collection.immutable.IndexedSeq[Int] = Vector(38, 2.......
據我明白矢量是正確的類型和IndexedSeq [INT]是性狀。
以下是爲什麼要抱怨的矢量
final class Vector[+A] extends AbstractSeq[A] with IndexedSeq[A] with GenericTraversableTemplate[A, Vector] with IndexedSeqLike[A, Vector[A]] with VectorPointer[A] with Serializable with CustomParallelizable[A, ParVector[A]]
那麼DEF?
object Random extends App {
def randomNumbers: IndexedSeq[Int] = {
val r = scala.util.Random
val vec = for (i <- 0 to 100) yield ((r.nextInt(100 - 10) + 1) + 10)
return vec
}
}
給出錯誤:
object Basics extends App {
def randomNumbers: Vector[Int] = {
val r = scala.util.Random
println(r.nextInt * 0.1 + 0.1)
println(r.nextFloat)
println(r.nextDouble)
println(r.nextInt)
println(r.nextPrintableChar)
val vec = for (i <- 0 to 100) yield ((r.nextInt(100 - 10) + 1) + 10)
return vec
}
}
類型不匹配;找到:scala.collection.immutable.IndexedSeq [Int]需要:Vector [Int]