ar.falsy.cat

Search

Search IconIcon to open search

dart言語

Last updated Jun 21, 2023

# 概要

# 特徴

# 文法

# 変数修飾子

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
// コンパイル時定数
const int x = 0;
const x = 0;

// 再代入不可能変数
final int x = 0;
final x = 0;

// 再代入可能変数
var int x = 0;
var x = 0;

// 遅延初期化変数
late int x;
late final int x;

# final: 再代入不可能変数

# late: 遅延初期化

# Null safety

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
(T? x) {
  x ?? T();  // x が null ならば 0 それ以外ならば T()
  x?.method();  // x が null ならば methodを呼ばずnullを返す それ以外ならば methodを呼ぶ
  x!.method();  // x が nullでない ことを前提として methodを呼ぶ(実行時にnullだった場合runtime error)
};
(T? x) {
  if (x == null) {
    return;
  }
  x.method();  // x!.method(); とする必要がない
};
(T? x) {
  x.method();  // Nullチェックしてないのでコンパイルエラー
};

# コンストラクタ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
class A {
  final int x;
  final int y;
  final int z;

  A(this.x, this.y, this.z);
  A(this.x, {required this.y, this.z = 1});
  A.empty() :
    this.x = 0, this.y = 0, this.z = 0;
}

void main() {
  final a1 = A(0, 1, 2);
  final a2 = A(0, y: 1);
  final a3 = A.empty();
}