2012-02-28 29 views

Trả lời

7

Dưới mui xe, String* được chuyển thành Seq[String]. Đó là tất cả đường chỉ là cú pháp:

def blah(ss: String*) = {...} 
blah("Hi","there") 

được biến thành

def blah(ss: Seq[String]) = {...} 
blah(Seq("Hi", "there")) 

:_* chỉ có nghĩa là "giữ đường, tôi đã nhận được những gì bạn cần - một Seq!"

+0

tức là nó không phải là phương pháp của Seq, chỉ là một loại đường khác - một loại nhà điều hành đặc biệt nào đó? :) – tuxSlayer

+1

@tuxSlayer - Đúng vậy. ':' có nghĩa là "thuộc kiểu", như trong 'val x: Int' (' x' là kiểu 'Int'). Vì vậy, '_ *' nên là một loại kiểu ("Tôi biết bạn muốn varargs nhưng, nhìn ở đây, tôi đã có một loại Seq!"). Được rồi, nó không phải là một loại thực, nhưng ít nhất là đường là phù hợp cú pháp. –

+0

OK, cảm ơn. Chỉ cần hôm nay tôi đã dành một số thời gian tìm kiếm phương pháp này trong thư viện :) Bây giờ rõ ràng của nó :) – tuxSlayer

Các vấn đề liên quan