2017-12-18 7 views
2

私はスカラチュートリアルに従っています。機能において_:typeと書かれたスカラ表記は何ですか?

リテラル、それは以下の表記があります。例えば

(_ : *type*) => println("pressed") 

(_ : Int) => println("pressed") 

この表記では、私は理解できなかったもの(_:タイプ手段。

答えて

4

これは無視されたパラメータを持つ無名関数です。 Scalaでは、パラメータを使用していないときは、アンダースコアを使用するのがコンベンションです。

次のようなまったく同じ書き換えることができます:誰かがこれをしたいと思う理由として

(unused: Int) => println("pressed") 

を。 Scalaの型推論を緩和する必要があることがよくあります。あなただけ

_ => println("pressed") 

を書いたのであれば、その後Scalaは入力パラメータの種類を推測することはできません。

(_: Int) => println("pressed") 

と入力すると、コンパイラによって推論された型がInt => Unitであることが保証されます。

関連する問題