Dartの概要 | 特徴や機能を紹介!! - mohumohu studio

mohumohu studio

           

みずきの技術&読書ブログ&無料ゲーム

プロフィール画像

Dartの概要 | 特徴や機能を紹介!!

今日はFlutterで採用されているプログラミング言語であるDartについて紹介していきます!!

DartはJavaScriptの代替言語としてGoogleが開発し、2011年に登場しました。Java/Python/JavaScriptなどのモダン言語の特徴を捉えておりこれらの言語を使ったことがある方には扱いやすい言語であると言えます。

当初はマイナー言語として定着しましたが、Flutterのプログラミング言語として採用され、再び注目を集めることになります。


Dartの特徴

主な特徴として

  • UIように最適化されている  - UIのために非同期・イベント駆動を組み合わせられる。Null Safetyやコレクション・スプレッド演算を使ったUIの構築が可能。
  • 生産性の高い開発ができる – ソースコードのホットリロード(即時反映)ができる。プロファイリング、ロギング、デバッグができる。
  • 全てのプラットフォームで高速に動作する – 事前のコンパイルでネイティブマシンコードに変換できる。JavaScriptJavaScript用にコードが最適化出来る。

ことがあげられます。

その他の特徴としては

  • オブジェクト指向を含むマルチパラダイム言語
  • 型推論ありの静的型づけ言語
  • Null Safetyに対応
  • すべてのクラスは、Objectクラスのサブクラス
  • 式(値を返す)と文(値を返さない)の両方を持つ
  • コンパイラはエラーと警告を報告し、エラーはコンパイル時と実行時がある
  • 関数はオブジェクト(第一級関数)

ことがあげられます。


Dartの機能

続いて、Dartが備えている細かい機能についてみていきましょう!

演算子と型

下記のような演算子及び型が利用できます。

  • 演算子
    • 四則演算 : +、-、*、/、%
    • インクリメント、デクリメント : ++、–
    • AND、OR、NOT : &&、||、!
    • null判定 : ??など
    • 複合代入 : +=など
    • 型キャスト、型チェック : as、is
    • カスケード記法 : ..
      • メソッドを連続で呼び出す。
  • スプレッド演算: …
    • 要素を展開する。
  • 変数修飾子
    • 再代入不可 : final
    • 定数 : const
    • 遅延初期化 : late
    • 整数、実数 : int、double
    • 文字列 : String
    • ブーリアン : bool
    • オブジェクト : Object
  • コレクションなど
    • 配列 : [ ]
    • 列挙型 : enum
    • リスト、集合、キーバリュー : List、Set、Map
    • ジェネリクス : クラス<型>
  • アノテーション
    • オーバーライド : @override
    • 非推奨 : @deprecated

制御構文

条件分岐、ループ、例外処理などの基本的な制御構文ももちろん使うことができます。

  • 条件分岐 : if、else
  • 多分岐 : switch、case
  • ループ : for、while、forEach、for in、do while
  • 制御 : break、continue
  • 例外 : try、catch、finally、throw

関数/メソッド

関数では、一般的な定義の他にオプション引数/名前つき引数/必須引数が設定できます。

第一級関数の性質により、関数を引数として取り扱えるため下記のようなことも可能です。

匿名関数(無名関数)も利用できます。

アロー演算子による関数定義も可能です。

オブジェクト指向

オブジェクト指向の概念(クラス/メソッド/継承/カプセル化など)が使えます。

クラス

  • クラス定義 : class
  • コンストラクタ : (クラス名と同名のメソッド)
    • インスタンス生成時に呼ばれる。
  • インスタンスの生成 : new
  • 継承 : extends
    • 親クラスを1つのみ指定し利用できる。
  • 抽象クラス : abstruct
    • 継承での利用を前提とした、インスタンス化できないクラスを作成する。
  • Mixin:with
    • 継承をせずに、他クラスのフィールドやメソッドが使える。

フィールド/メソッド

  • プライベートフィールド/メソッド : _xxx
    • _で始めるとスコープがプライベートになる。
  • staticフィールド/メソッド : static
    • クラスに属するフィールド/メソッドになる。
  • setter/getter : get/set
    • setter/getterでフィールドにアクセスする。

その他

外部で定義されたパッケージの利用や非同期処理も可能です。

  • パッケージの利用 : import、as、show、hide
  • 非同期処理 : await、async、Future

まとめ

今日はDartについて紹介していきました!!

次回は環境構築について紹介していきたいと思います。

良きFlutterライフを!!

2025-02-21

0件のコメント

コメントはまだありません。最初の一人になりましょう!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です