.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

一応、AltJSFlutter専用言語ではない)

  • Googleによって開発されたウェブ向けのプログラミング言語
  • 普及は進まず、2015年にはVMのChrome統合を断念
  • TypeScriptをGoogle社内の標準プログラミング言語として承認
  • しかし、2018年2月に発表されたDart2&Flutterが進撃を開始した。
  • JavaScriptへのトランスパイラ以外にVMも持っている(FlutterはVMを使用)。

詳細

基本

エントリポイント

void main() {
  print("Hello, World!");
}

  • 基本型
    int、double、num、bool、Null、String
  • 配列
    • List:一次元配列
    • Set:ユニークな値の一次元配列
    • Map:連想配列
  • その他
    • Generic型
    • dynamic型
  • 型変換
    .toString()など。

変数

  • 自動型推論
    varを使用できる。
  • 変数宣言キーワード
    • const:定数
    • final:変数だが初期化時以外の代入不可
  • 命名規則

関数

  • 定義
    <戻り値の型> <関数名>([<引数の型> <引数値>],[<引数の指定>]){
      return <戻り値>;
    }
  • public / private
  • private
    関数名の先頭を「_」にする。
  • public
    privateでなければ、publicになる。
  • instance / static
  • static
    staticを付与する。
  • instance
    staticでなければ、instanceになる。
  • 戻り値
  • 型の省略
    helloWorld2(world){
      return 'Hello $world';
    }
  • 非同期
    Future<void> ...() async {
      ...
    }
  • 引数
  • 名前付き引数
    "{}"内に定義する。
    computeSum({int val1, int val2}){
      return val1 + val2;
    }
  • オプショナル引数
    • オーバーロードは無いのでコレで対応できない場合はリネームする。
    • "[]"内に定義して、nullを許容しないものには初期値を指定。
      List<String> splitString(String input, [String split = ',', int max = 100]){
        // 省略
      }
  • ラムダ式
    $はプレースホルダ
    • ワンライナー(右辺に式
      String helloWorld4(String world) => 'Hello $world';
    • 無名関数(右辺にコードブロック(クロージャ
      String helloWorld4(String world) { 'Hello $world'; };

クラス

  • new演算子
    インスタンスの作成のnew演算子は省略可能
  • インターフェイス(抽象クラス)
    クラス定義にabstractキーワードを使用する。
  • 継承
    • 具象クラス:extendsキーワードを利用して継承
    • 抽象クラス:implementsキーワードを利用して継承
  • メンバ変数
    • 先頭が「_」から始まるモノは、Internal相当。
    • Flutterではthisは省略されることが多い。
  • メソッド
    • オーバーライドはできる。
    • オーバーロードはできない。
    • ミックスインと言うメソッド追加の仕組みがある。
      • mixinキーワードを利用してクラス風に定義して、
      • withキーワードを利用して多重継承っぽく使用できる。
      • 中から使う場合は、thisではなくsuperを使用するらしい。
  • コンストラクタ
    • 略記の形式が幾つかある。
    • 名前付きコンストラクタ
    • リダイレクト・コンストラクタ
    • Factoryコンストラクタ
      • 抽象クラスで派生クラスを返したり
      • シングルトンで返したりできる。
  • ゲッター・セッター
    String _name;
    set name(String value){
      _name = value;
    }
    String get name{
      return _name;
    }

library

  • libraryで名前をつけられる。
  • libraryを明示しなくても自動的に
    タグがつけられてライブラリとして扱われる。
  • dart:で始まるライブラリと、
    package:で始まるその他のライブラリがある。

part / part of

partとpart ofでlibraryのファイル分割が可能。

import / export

  • import
  • ライブラリを読み込む
  • 同じパッケージ内のライブラリ(≒ファイル)
    • パッケージ名のlib以下の仮想パスで指定。
      import 'package:my_package/src/other_library.dart';
    • 自ファイルからの相対パスで指定。
      import 'src/other_library.dart';
      import '../other_library.dart';
  • export
    • 外部に公開するライブラリを指定する。
  • メインのライブラリにexportを記述すると、
    メインのライブラリを読み込むだけで、
    exportされたライブラリにアクセスできる。

show / hide / as / deferred

オプション

  • show
    • import / exportで利用可能。
    • 指定したクラスや関数のみを参照
  • hide
    • import / exportで利用可能。
    • 指定したクラスや関数を参照しない
  • as
    • importでのみ利用可能。
    • 指定したクラスに別名を指定
    • C#のusing エイリアス(別名) ディレクティブ的な。
  • deferred
    • importでのみ利用可能。
    • deferred asで、エイリアス利用時まで遅延ロード

非同期処理

Futureクラス

Promise (JavaScript)とほぼ同様

async/await

async/await (JavaScript)とほぼ同様

その他

Stream

  • LINQのようなもの。

スプレッド演算子(...)

参考

Publickey

CodeZine?(コードジン)

adventar.org

すぐにFlutterを始めたい人のためのDart入門

DevelopersIO


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-06-30 (水) 22:20:16 (108d)