5
Tôi chắc chắn câu trả lời là khá đơn giản, nhưng tôi đã bị mắc kẹt ở đây:varargs câu đố?
Welcome to Scala version 2.7.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_14).
Type in expressions to have them evaluated.
Type :help for more information.
scala> def f(x:Int*)=0
f: (Int*)Int
scala> val xs:Seq[Int]=1::2::3::4::Nil
xs: Seq[Int] = List(1, 2, 3, 4)
scala> f (xs)
<console>:7: error: type mismatch;
found : Seq[Int]
required: Int
f (xs)
^
Làm thế nào tôi xây dựng một 'Int *'?
có! hoạt động! ... cảm thấy một chút như "buộc" loại, mặc dù – GClaramunt
Vâng, nó đang buộc loại. Loại chính xác là danh sách đối số, không phải là đối số là danh sách. Bằng cách này, nó hoạt động cho bất kỳ loại chuỗi nào, cũng như bất kỳ loại nào có thể được chuyển đổi thành một chuỗi, vì vậy bạn có thể đã chuyển trực tiếp 'Danh sách'. Ngoài ra, nó là đối xứng. Bạn có thể làm 'xs match {case List (ys @ _ *) => ...}'. –