6
Seq[String]
をString*
に変換するために:_*
を使用していましたが、これがどのようにしてフードの下で動作するのか分かりません。どのように:_ *順序付きコレクションを変数argリストに変換しますか?
これについて簡単に考える方法はありますか?
Seq[String]
をString*
に変換するために:_*
を使用していましたが、これがどのようにしてフードの下で動作するのか分かりません。どのように:_ *順序付きコレクションを変数argリストに変換しますか?
これについて簡単に考える方法はありますか?
String*
はSeq[String]
として渡されます。それはすべてちょうど糖衣構文です:ちょうど意味
def blah(ss: String*) = {...}
blah("Hi","there")
def blah(ss: Seq[String]) = {...}
blah(Seq("Hi", "there"))
と:_*
になっている「糖を保持し、私はすでにあなたが必要なもの持っている - 配列を!」
つまり、それはSeqの方法ではなく、もう1つの砂糖 - 特別な演算子のようなものですか? :) – tuxSlayer
@tuxSlayer - そうです。 ':'は 'val x:Int'(' x'は 'Int'型)のように"型のもの "を意味します。だから、 '_ *'はある種の型でなければなりません( "私はあなたがvarargsを望むのを知っていますが、ここを見て、私は既にSeq!"型を持っています)。さて、実際のタイプではありませんが、少なくとも砂糖は構文的に一貫しています。 –
よろしくお願いいたします。ちょうど今日、私は図書館でこのメソッドを探して時間を割いた:)今はっきりしています:) – tuxSlayer