Scalaの機能
一緒にミッションステートメントを実行するための関数のセットです。 あなたは、異なる機能にコードを置くことができます。 別々の機能にコードを分割する方法を決定するためにあなた次第ですが、論理的に通常分割実施するための特定のタスクに基づいて、各機能を実行します。
Scalaは、両方のセマンティクスの差が小さい上に、関数やメソッドを持っています。 Scalaのメソッドは、クラスの一部であり、この関数は、変数に割り当てることができるオブジェクトです。 言い換えれば、関数はメソッドであるクラスで定義され。
私たちは、どこにでも関数内であっても定義関数(インライン関数)関数を定義することができます。 より重要な点は、Scalaの関数名は、以下の特殊文字から構成されてもよいです:+、+、 - 、&、 - 、 - 、\、/、:、など
関数の宣言
次の形式でScalaの関数宣言:
def functionName ([参数列表]) : [return type]
あなたが等号とメソッド本体を記述しない場合、メソッドは暗黙的に型を含むが、その後抽象型である、 " '抽象的(抽象的)宣言されています。
関数定義
この方法は、パラメータ、コロンのオプションのリストに続いて、スタートdefキーワードで定義されますと方法は、「=」に等しい数の型を返し、最後にメソッドの本体 "。"
Scalaの関数は次の形式で定義されています。
def functionName ([参数列表]) : [return type] = { function body return [expr] }
上記のコードの戻り値の型は、任意の有効なデータ・タイプのScalaすることができます。 パラメータリストのパラメータは、カンマで区切ることができます。
以下の関数は二つのパラメータが加算され、渡され、加算されて特長:
object add{ def addInt( a:Int, b:Int ) : Int = { var sum:Int = 0 sum = a + b return sum } }
関数が値を返さない場合は、ユニットを返すことができ、これは、Javaの空隙に似ている、次のように、例を示します。
object Hello{ def printMe( ) : Unit = { println("Hello, Scala!") } }
関数呼び出し
Scalaは関数を呼び出すためのさまざまな異なる方法を提供しています:
以下は、標準形式のメソッド呼び出しです:
functionName( 参数列表 )
関数はオブジェクトインスタンスを呼び出すために使用されている場合、我々は(番号を使用して。)同様のJava形式を使用することができます。
[instance.]functionName( 参数列表 )
上記の例は、定義や関数のインスタンスを呼び出すことを示します。
object Test { def main(args: Array[String]) { println( "Returned Value : " + addInt(5,7) ); } def addInt( a:Int, b:Int ) : Int = { var sum:Int = 0 sum = a + b return sum } }
上記のコードの実装、出力は次のようになります。
$ scalac Test.scala $ scala Test Returned Value : 12
Scalaは関数型言語なので、関数はScalaの言語の中核です。 ここではいくつかの関数の概念は、私たちはより良いScalaのプログラミングを理解するのに役立ちます、次のとおりです。
分析関数の概念接続ケース | ||
---|---|---|
名前の呼び出しによって機能(による呼び出し名) | 関数の引数の名前を指定します。 | |
機能-可変パラメータ | 帰納的関数 | |
デフォルトのパラメータ値 | 高階関数 | |
ネストされた関数 | 無名関数 | |
部分関数適用 | カレー機能(関数カリー化) |