Trong Scala (2.7), nếu tôi có chức năng này:Làm cách nào để chuyển tiếp các đối số lặp lại trong Scala?
def foo(args: Array[String]) =
for (arg <- args) println(arg)
Nếu bây giờ tôi cố gắng xác định như sau:
def bar(args: String*) = foo(args)
sau đó trình biên dịch phàn nàn:
<console>:5: error: type mismatch;
found : String*
required: Array[String]
def bar(args: String*) = foo(args)
^
tôi không hiểu lỗi này, kể từ khi cuốn sách Scala lập trình nói rằng các loại args
bên trong chức năng bar
thực sự là Array[String]
. Làm thế nào tôi phải viết một hàm bao bọc như vậy với các đối số lặp đi lặp lại?
Nếu cuốn sách thực sự tương đương với Foo * để Array [Foo] đó là sai; bản dịch thông thường là Seq [Foo] –