2016-08-02 7 views
0

私はスカラーが初めてです。私は一つの基本的な考え方を理解する必要があります。 Scalaでスカラーマップでは、フィルター、ゴーリーは関数またはメソッドです

、我々はマップ、フィルタ、GROUPBYなどを持っている...

は、彼らが機能していますか?または彼らの方法ですか?

+0

短い答え: 'def'で定義されているものは全てScalaのメソッドです。 –

答えて

5

これはメソッドです。例えば、 scala.collection.GenTraversableLike.map方法。

実際にはScala Core Languageには機能がありません。

基本的に、Scalaの関数のサポートはJavaと似ています。applyというメソッドを持つオブジェクトはすべて "関数"として使用できます。このように特別なリテラル構文を使用してインスタンス化することができるなどのScala標準ライブラリにおける形質の数、Function3[-T1, -T2, -T3, +R]Function2[-T1, -T2, +R]Function1[-T1, +R]Function0[+R]と呼ばれるが、あります。

val fn = (i: Int, j: Int) => i + j 

2つのアイデアは、それがあることを意味するものがありますScalaで「機能」:

  • 狭いいずれかFunctionN特徴の一つ、又は
  • 一般的なものの例:apply方法を有する任意のオブジェクト。

mapfiltergroupBy、どちらも、彼らもオブジェクトではありませんされていません。彼らは方法です。

0

これらのメソッドが機能である」多くのScalaのクラスが提供するより高次の関数であり、この高次関数は、(スカラドキュメントからの)メソッド場合であってもよい他の機能

http://docs.scala-lang.org/tutorials/tour/higher-order-functions.html

を構成するために使用することができますそれはある種のクラス、特質、またはシングルトンオブジェクトのメンバーです。 "

関連する問題