Scalaの特殊なオブジェクトとキーワード
938 ワード
Option:標準クラスライブラリのOptionタイプは、存在する可能性があり、存在しない可能性のある値をサンプルクラスで表します.
Optionには2つのサブカテゴリがあります.1つはSomeで、1つはNoneです.彼がSomeに返信したとき、この式を代表してStringを成功裏にあげました.get()という式を通じてそのStringを手に入れることができます.彼がNoneを返した場合、文字列がないことを意味します.もちろん、Noneに戻る、つまりStringがない場合、get()を無理やり呼び出してStringを取得すると、ScalaのようにExceptionが報告されます.Option[T]はget()のほかにgetOrElse()という別の関数も提供されます.この関数はその名の通りです.Optionに何かあったら出してください.そうしないとデフォルト値が与えられます.リファレンスurl
implicit(暗黙的変換):implicitキーワードで宣言される単一のパラメータを持つ関数.implicit conversion functionでは、このような関数が自動的に適用され、値が1つのタイプから別のタイプに変換されます.【example】整数nを点数n/1に変換したい.
これにより、次の式で評価できます.
yield:for-yield式の構文は、for{句}yield{ループ体}yieldがループ体全体の前に
forループのyieldは現在の要素をメモし、コレクションに保存し、ループが終了するとそのコレクションに戻ります.Scalaではforループに戻り値があります.ループされているのがMapであれば、返されるのがMap、ループされるのがList、返されるのがListというように
Optionには2つのサブカテゴリがあります.1つはSomeで、1つはNoneです.彼がSomeに返信したとき、この式を代表してStringを成功裏にあげました.get()という式を通じてそのStringを手に入れることができます.彼がNoneを返した場合、文字列がないことを意味します.もちろん、Noneに戻る、つまりStringがない場合、get()を無理やり呼び出してStringを取得すると、ScalaのようにExceptionが報告されます.Option[T]はget()のほかにgetOrElse()という別の関数も提供されます.この関数はその名の通りです.Optionに何かあったら出してください.そうしないとデフォルト値が与えられます.リファレンスurl
implicit(暗黙的変換):implicitキーワードで宣言される単一のパラメータを持つ関数.implicit conversion functionでは、このような関数が自動的に適用され、値が1つのタイプから別のタイプに変換されます.【example】整数nを点数n/1に変換したい.
implicit def int2Fraction (n: Int) = Fraction(n, 1)
これにより、次の式で評価できます.
val result = 3 * Fraction(4, 5) // int2Fraction(3)
yield:for-yield式の構文は、for{句}yield{ループ体}yieldがループ体全体の前に
forループのyieldは現在の要素をメモし、コレクションに保存し、ループが終了するとそのコレクションに戻ります.Scalaではforループに戻り値があります.ループされているのがMapであれば、返されるのがMap、ループされるのがList、返されるのがListというように