Scala wersji 2.10.3 działa na java 7losowe shuffle nie pracuje dla zakresu
import scala.util.Random
Random.shuffle(0 to 4) // works
Random.shuffle(0 until 4) // doesn't work
: 9: error: Nie można zbudować zbiór typu scala.collection.AbstractSeq [Int] z elementami typu Int oparty na kolekcji typu scala.collection.AbstractSeq [Int].
Komunikat o błędzie wydaje mi się naprawdę tylko powiedzieć "Nie możesz tego zrobić". Ktoś ma jakiś wgląd, dlaczego?
Moja obecna praca: Random.shuffle ((0 do 4) .toIndexedSeq) –
Zgaduję, że może to mieć coś wspólnego z '0 do 4' i' 0 do 4' jest różnymi klasami '0 do 4 res0: scala.collection.immutable.Range.Inclusive z scala.collection.immutable.Range.ByOne = zakresu (0, 1, 2, 3, 4) 0 do 4: scala.collection.immutable RES1. Zakres z scala.collection.immutable.Range.ByOne = Zakres (0, 1, 2, 3) ' – Andrey
@Andrey tak, zauważyłem, że ... Spojrzałem na podpis typu dla shuffle: def shuffle [T, CC [ X] <: scala.TraversableOnce [X]] (xs: CC [T]) (niejawny bf: scala.collection.ganBuildFrom [CC [T], T, CC [T]]): CC [T] = {/ * skompilowany kod * /}. Widzę, że błąd pochodzi z CanBuildFrom.class i że nie może znaleźć niejawnej dla klasy .Range.ByOne –