Scala phiên bản 2.10.3 chạy trên java 7xáo trộn ngẫu nhiên không làm việc cho Phạm vi
import scala.util.Random
Random.shuffle(0 to 4) // works
Random.shuffle(0 until 4) // doesn't work
: 9: Lỗi: Không thể xây dựng một bộ sưu tập các loại scala.collection.AbstractSeq [Int] với phần tử kiểu Int Dựa trên một bộ sưu tập kiểu scala.collection.AbstractSeq [Int].
Thông báo lỗi dường như thực sự chỉ cho tôi biết "Bạn không thể làm điều đó". Bất cứ ai có bất kỳ cái nhìn sâu sắc là tại sao?
công việc hiện tại của tôi xung quanh: Random.shuffle ((0 đến 4) .toIndexedSeq) –
Tôi đoán là nó có thể liên quan đến '0 đến 4' và' 0 cho đến 4' là các lớp khác nhau '0 đến 4 res0: scala.collection.immutable.Range.Inclusive với scala.collection.immutable.Range.ByOne = Phạm vi (0, 1, 2, 3, 4) 0 cho đến 4 res1: scala.collection.immutable. Phạm vi với scala.collection.immutable.Range.ByOne = Phạm vi (0, 1, 2, 3) ' – Andrey
@Andrey yeah Tôi nhận thấy rằng ... Tôi đã xem chữ ký kiểu để trộn: def shuffle [T, CC [ X] <: scala.TraversableOnce [X]] (xs: CC [T]) (ẩn bf: scala.collection.generic.CanBuildFrom [CC [T], T, CC [T]]): CC [T] = {/ * mã được biên dịch * /}. Tôi thấy rằng lỗi đến từ lớp CanBuildFrom.class và nó không thể tìm thấy một ẩn cho lớp .Range.ByOne –