Scalaの研究ノート() - はじめに

Scalaの研究ノート() - はじめに

1.Scalaは、プログラミング言語の静的に型付けされたオブジェクト指向と関数型プログラミングの概念を組み合わせたものです。

Scalaで、目的関数値は、関数型は、クラスのサブクラスによって継承されます。

=「Scalaはオブジェクト指向です。

オブジェクト指向の最も簡単な方法は、いくつかのデータと容器の操作を置くことです。オブジェクト指向プログラミングの大きなコンセプトは、それらが動作を含むことができるように、すなわち、完全に汎用的になるために、そのようなコンテナを可能にするために、データが含まれていてもよいが、それらはまた、他の値の形式で容器に格納された、またはパラメータとして渡すことができます操作。

継承多重継承のダイヤモンド(ダイヤモンド継承)問題を回避するためのScalaのトレイト。

アタッチメント:ダイヤモンド継承:カウンタは、ある初期化方法Aを仮定すると、以下に示すように、プログラムが最初に設計されたとDの例では、カウンタAの実行が二回、明らかに互換性がないこと

=「Scalaは式の関数です。

ガイドとして2つのコアの哲学を持つ関数型プログラミング。

最初のアイデアは、ファーストクラスの値の関数です。関数型プログラミング言語では、整数、文字列、等関数値の状態と同じです。機能は、他の関数へのパラメータとして渡され、戻り値として返さそれら、または変数に保存することができます。あなたは、関数のように、整数として定義された関数で別の関数を定義することができます。第一に値する機能は、抽象を提供したよう、新たな制御構造を作成する操作を容易にします。

第二のアイデアは、手順がすべきことであるという場でデータを修正するよりも、出力値に入力値をマッピングします。例えば、それは、Java文字列は不変で、Rubyの文字列は変数です。こうして実装の観点から文字列は、Javaはなくルビーよりも、機能的です。不変のデータ構造は、関数型プログラミングの基礎の一つです。

このアイデアは、メソッドのように表現することができ、副作用を持つべきではありません。両方の方法は、パラメータを受信して​​外部通信で結果を返すことができます。関数型プログラミング(任意の入力に対して、メソッド呼び出しは、プログラムのセマンティクスに影響を与えず、結果として交換することができる)不変のデータ構造を奨励し、方法は、透明性を主張しました。

2.Scala 4つの利点

=「Scalaは互換性があります

Scalaのプログラムは、JVMバイトコードにコンパイルされます。Scalaの厳しい再利用Javaタイプ、およびネイティブなJava型に「再パッケージ。」されています Scalaはメンバーが存在しない場合、それは月Scalaの暗黙的な変換を試みる一致の種類が正常でない場合、暗黙的な変換をサポートし、またはコード選択(タイプ定義)。

=「Scalaは合理化され

いくつかの一般的な定型Javaプログラムを避けるために、Scalaの言語。繰り返しを除去するのを助けるためにScalaの型推論タイプ情報は、コードがよりコンパクトで読みやすくなります。

=「Scalaはあなたがより良い複雑さを管理することができ、抽象インタフェース設計のレベルを高め、高度です。

=「Scalaは静的に型付けされました

Scalaは入れ子になったクラスをJavaの型システムと同様のことができただけでなく、それはまた、交差点の種類と組み合わせジェネリックでパラメータの種類を可能にする、と抽象型タイプの詳細は隠されました。

型推論によって問題を回避するには長すぎるったらしい、パターンマッチングと剛性の種類を回避するための書き込みと組成物の他の新しい方法です。

静的型システムは、確かにユニットテストを置き換えることはできませんが、彼は特定のプログラムの性質を検証するヘルプをテストユニットの数を減らすことができました。

おすすめ

転載: www.cnblogs.com/ganshuoos/p/11934507.html