14

私の解釈_._1は次のとおりです。

_= ワイルドカード パラメータ _1= メソッド パラメータ リストの最初のパラメータ しかし、一緒に使用すると.、それは何を意味するのでしょうか?

これはその使用方法です:

.toList.sortWith(_._1 < _._1)

このステートメントについて:

_++_

道に迷いました。どういうわけか2つのワイルドカードパラメーターを連結していますか? これはその使用方法です:

.reduce(_++_)

上記のコードをより冗長にして暗黙的なものを削除できれば、特に興味があります。

4

3 に答える 3

18

_._1タプルの最初の要素を取得する_1ワイルドカードパラメータのメソッドを呼び出します。_したがって、sortWith(_._1 < _._1)タプルのリストを最初の要素でソートします。

_++_++2番目のパラメーターを引数として、最初のワイルドカードパラメーターのメソッドを呼び出します。++シーケンスの連結を行います。したがって.reduce(_++_)、シーケンスのリストを一緒に連結します。通常はそのために使用できますflatten

于 2012-10-24T09:06:14.927 に答える
11

_1メソッド名です。具体的_1には、タプルには、タプルの最初の要素を返すという名前のメソッドがあります。つまり_._1 < _._1、「両方の引数で_1メソッドを呼び出し、最初の引数が2番目の引数よりも小さいかどうかを確認する」という意味です。

そして、はい、_++_両方の引数を連結します(最初の引数に++連結を実行するメソッドがあると仮定します)。

于 2012-10-24T09:07:54.897 に答える
3
.reduce(_++_)

本当にただです:

.reduce{ (acc, n) => acc ++ n }
于 2012-10-24T09:08:27.763 に答える