Kotlin実戦ノート:第一章Kotlin:定義と目的

5387 ワード

第一章Kotlin:定義と目的
一、Kotlinの主な特徴
1、静的タイプ
KotlinはJavaと同様に静的タイプのプログラミング言語である.
  • 静的言語:すべての式のタイプはコンパイラで決定され、コンパイラはオブジェクトにアクセスしたいメソッドまたはフィールドが含まれているかどうかを検証できます.
  • 動的言語:実行時にメソッドとフィールド参照を解析する任意のデータ型を格納する変数を定義できます.

  • 次のKotlinコード:
    val x = 1;

    静的言語である以上、xの前はなぜintではないのか.*Javaとは異なり、Kotlinはソースコードに各変数のタイプを表示して宣言する必要はありません.多くの場合、変数タイプはコンテキストに基づいて自動的に判断できるため、タイプ宣言を省略することができます.上記のコードから,KotlinはそのタイプがIntであることを自動的に判断する.コンパイラというコンテキストから変数タイプを推定する能力をタイプ導出と呼ぶ.
    Kotlinのタイプ導出のサポートにより、タイプを表示して宣言する必要がなくなり、静的タイプに関する追加の冗長コードの大部分は存在しません.
    いくつかの静的言語の利点:*パフォーマンス:メソッドの呼び出し速度が速く、実行時にどのメソッドが呼び出されているかを判断する必要がないためです.*信頼性:コンパイラはプログラムの不確実性を検証し、実行時にクラッシュする確率が低い.*保守性:コードで使用されるオブジェクトのタイプが表示されるため、見知らぬコードはメンテナンスが容易です.*ツールサポート:静的タイプにより、IDEは信頼性の高い再構築、正確なコード補完、その他の特性を提供します.
    2、関数式とオブジェクト向け
    関数式プログラミングの核心概念は以下の通りである:*トップ関数:関数を値として使用します.変数として保存したり、パラメータとして渡したり、他の関数の戻り値として使用したりできます.*不変性:可変オブジェクトを使用します.これにより、作成後にステータスが変更されないことが保証されます.*副作用なし:純粋な関数を使用します.このような関数は、同じ値を入力したときに同じ結果を生成し、同じ結果を生成しません.他のオブジェクトの状態が変更され、外の世界とインタラクティブになることはありません.
    関数がスタイルになるコードはどんなメリットをもたらしますか?まず、簡潔で、次に、マルチスレッドが安全です.
    簡潔:関数を値とすると、コードの重複を避けるためにより強力な抽象能力を得ることができます.似たようなコードが2つあるとしたら似たようなタスクを完了します(たとえば、集合内で一致する要素を見つけます).ただし、具体的には異なる実装を行います(要素が一致していると判断する方法).この論理の共通部分を1つの関数に抽出し、他の異なる部分をパラメータとして渡すことができます.これらのパラメータ自体も関数です.(要素マッチングを判断する論理)では、これらの匿名パラメータを簡潔な構文で表すことができます.間違いなくlambda式です.
    
    
    fun findAlice() = findPerson{it.name== "Alice"}
    fun findBob() = findPerson{it.name== "Bob"}

    マルチスレッドセキュリティ:マルチスレッドプログラムで最大のエラーソースの1つは、適切な同期メカニズムが採用されていない場合に、異なるスレッドで同じデータを変更することです.可変データ構造と純粋な関数を使用すると、このような安全でない変更が発生しないことを保証し、複雑な同期スキームを設計する必要もありません.
    また、関数プログラミングはテストがより容易であることを意味し、副作用のない関数(完璧な単一職責原則)は独立してテストすることができ、大量の設定コードを書いて依存する環境全体を構築する必要はありません.
    Java 8以前のバージョンでは、関数プログラミングはサポートされていませんでした.
    Kotlinは豊富な特性セットを持っていて、最初から関数式のプログラミングスタイルをサポートしています.*関数タイプ、関数が他の関数をパラメータとして受け入れることを許可したり、他の関数を返したりすることができます.*Lambda式は、最小のテンプレートコードでコードブロックを簡単に渡すことができます.*可変値オブジェクトを作成するための簡明な構文を提供するデータ・クラス.*標準ライブラリには、関数プログラミングスタイルでオブジェクトとコレクションを操作できる豊富なAPIコレクションが含まれています.
    二、Kotlin応用
    Kotlinが使用する2つの分野は,サーバ側とAndroid開発である.なぜKotlinが非常に適しているのか見てみましょう.
    1,サービス側のKotlin
    サービス側プログラミングは非常に大きな概念であり、以下のすべてのアプリケーションタイプを含んでいる.*ブラウザにHTMLページを返すWebアプリケーション*HTTPを通じてJSON APIを暴露するモバイルアプリケーションバックエンドサービス*RPCプロトコルを通じて相互に通信するマイクロサービス
    Kotlin開発バックエンドはしばらく考えず、後は書かない.
    2,AndroidでのKotlin
    Kotlinの言語特性に加え、Androidフレームワークをサポートする特殊なコンパイルプラグインにより、Androidの開発体験が効率的で快適になります.Kotlinを使用することによるもう一つの利点は、アプリケーションの信頼性の向上です.ここでは、KotlinのタイプシステムがNull値を正確に追跡することで、空のポインタの異常な問題による圧力を大幅に軽減するためです.KotlinはJava 6と完全に互換性があります.Kotlinコンパイラが生成したコードは、通常のJavaコードと同じ効率で実行されます..
    三、Kotlinのデザイン哲学
    Kotlinについて話すとき、私たちはそれが実務的で、簡潔で安全な言語であり、相互運用性に専念していると言うのが好きです.どういう意味だ?
    1、実務
    Kotlinは問題を解決するために設計されていますこれは研究言語ではありません(プログラミング言語設計分野の現在の技術レベルを向上させるために、コンピュータ科学の革新的な概念を探求することを試みて待っています).Kotlinは設計時に、他のプログラミング言語にできるだけ依存され、成功したことが証明されている特性と解決策であり、言語の複雑さを低減し、学習を容易にします.
    2、簡潔
    Kotlinの構文特性は,コード構造のニーズを満たすためだけでなく,開発者が書いたコードが実際の意味を持つことをできるだけ保証する.(Javaのgetter、setterはKotlinで暗黙的)もう1つのコードが冗長になる必要がない原因は、表示されたコードを作成して一般的なタスクを完了することであり、例えば、セット内の要素を位置決めし、Kotlinはこれらの冗長で重複する世代コードセグメントの代わりに豊富な標準ライブラリを持っている.
    3、安全
    Kotlinは空のポインタとタイプ変換異常に対してより良い処理がある.
    4、相互運用性
    KotlinとJavaの間では、非常に簡単に呼び出すことができます.これにより、プロジェクトのどこでもKotlinとJavaの混用が可能になります.IDEはKotlinとJavaの変換器をサポートし,両者のコードを直接変換することができる.Kotlinは既存のJavaライブラリを最大限に使用します.IDEのクロス言語機能:*JavaとKotlinソースファイルを自由に切り替えます.*ハイブリッド言語のプロジェクトをデバッグし、異なる言語で作成されたコードの中で単一のステップでデバッグできます.*Javaメソッドを再構築する場合、Kotlinコードの呼び出しも正しく更新され、逆も同様です.
    四、Kotlinツールの使用
    Javaと同様に、Kotlinもコンパイル言語です.これは、Kotlinコードを実行する前にコンパイルしなければならないことを意味します.
    1,Kotlinコードのコンパイル
    Kotlinのソースコードは.ktのファイルに格納されます(Javaの.javaのファイルに格納されています).Kotlinコンパイラはソースコードを分析して.classのファイルを生成します.これはJavaコンパイラと何の違いもありません.
    2,Intellij IDEAとAndroid Studioプラグイン
    Intellij IDEAのKotlinプラグインは言語と同期して開発され、Kotlinが利用できる機能が最も包括的な開発環境である.成熟して安定しており、Kotlinの開発に必要なツールをすべて提供しています.Android Studioはplug-in managerプラグインマネージャからKotlinプラグインをインストールできます.
    3,JavaからKotlinへの変換器
    Kotlinの使用を開始したばかりの頃、文法構造をはっきり覚えていない場合は、Java構文を使用して対応するコードクリップを作成し、貼り付けます.ktファイルでは、変換器が自動的にコードをKotlinに変換します.既存のJavaプロジェクトにKotlinを導入する場合、コンバータも使いやすい.従来のJavaクラスをKotlinで拡張するには、まずコンバータを使用してJavaコードをKotlinコードに変換します.
    JavaコードをコピーしてKotlinファイルに貼り付ける方法*Convert Java File to Kotlin Fileアクションをトリガーして、ファイル全体を変換します.
    コピー
    貼り付け
    アクションをトリガーするショートカットキー:cmd+alt+shift+kでも可能:cmd+shift+a後入力ボックスでConvert Java File to Kotlin File注意included disabled actionsを検索
    五、まとめ
  • Kotlinは静的言語であり、ソースコードの簡潔さを維持しながら、正確性とパフォーマンスを維持できるタイプ導出をサポートします.
  • Kotlinはオブジェクト向けと関数式の2つのプログラミングスタイルをサポートし、ファーストクラスの関数によってより高いレベルの抽象を可能にし、可変値をサポートすることで、テストとマルチスレッド開発を簡素化した.
  • は、サービス・エンド・アプリケーションでよく機能し、既存のJavaフレームワークをすべて全面的にサポートし、HTMLの生成や永続化など、一般的なタスクに新しいツールを提供します.
  • はAndroidでも動作します.これは、コンパクトな実行時、Android APIの特殊なコンパイラサポート、豊富なライブラリのおかげで、一般的なAndroid開発タスクにKotlinの友好的な関数を提供しています.
  • は無料でオープンソースで、主流のIDEと構築システムを全面的にサポートしています.(Gradle,Maven,Antなど)
  • Kotlinは実務的で、安全で、簡潔で、Javaと相互運用可能であることは、証明されたソリューションを使用して一般的なタスクを処理することに専念し、一般的な空のポインタ異常のようなエラーを防止し、コンパクトで読みやすいコードをサポートし、Javaとの無制限の統合を提供することを意味します.