「Dart」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「==Dart== [Flutter] {{amazon|B00JB3CWZI}} *https://dart.dev/ *[https://dart.dev/guides/language/spec 言語仕様] ==基本== ===Install=== ====Windows==== *ht…」) |
|||
1行目: | 1行目: | ||
==Dart== | ==Dart== | ||
− | [Flutter] | + | [[Flutter]] |
{{amazon|B00JB3CWZI}} | {{amazon|B00JB3CWZI}} | ||
30行目: | 30行目: | ||
} | } | ||
*実行 | *実行 | ||
− | + | >dart hello.dart | |
Hello Dart! | Hello Dart! | ||
==型== | ==型== | ||
82行目: | 82行目: | ||
*セミコロン必須 | *セミコロン必須 | ||
====エントリーポイント ==== | ====エントリーポイント ==== | ||
− | *void main() もしくは、void main(List | + | *void main() もしくは、void main(List<String> args) |
====コメント ==== | ====コメント ==== | ||
*// | *// | ||
97行目: | 97行目: | ||
*コンパイル時点で評価 | *コンパイル時点で評価 | ||
:;オブジェクトの変更禁止 | :;オブジェクトの変更禁止 | ||
− | final List | + | final List<int> list1 = [1, 2, 3]; |
list1.add(4); // [1, 2, 3, 4] | list1.add(4); // [1, 2, 3, 4] | ||
− | List | + | List<int> list2 = const [1, 2, 3]; |
list2.add(4); // エラーが発生 | list2.add(4); // エラーが発生 | ||
===関数=== | ===関数=== | ||
*第1級オブジェクト | *第1級オブジェクト | ||
*宣言 | *宣言 | ||
− | + | <blockquote>常</blockquote> | |
int someFunc2(int a, int b) { | int someFunc2(int a, int b) { | ||
return a + b; | return a + b; | ||
} | } | ||
====1行==== | ====1行==== | ||
− | bool isHoge(String str) = | + | bool isHoge(String str) => str == "hoge"; |
====引数の指定==== | ====引数の指定==== | ||
someFunc3(a: 1, b: 2, c: 3); | someFunc3(a: 1, b: 2, c: 3); | ||
118行目: | 118行目: | ||
int someFunc4(int a, {int b = 2}) | int someFunc4(int a, {int b = 2}) | ||
====無名関数(ラムダ、クロージャ)==== | ====無名関数(ラムダ、クロージャ)==== | ||
− | list.forEach((item) = | + | list.forEach((item) => print(item)); |
====ブロック==== | ====ブロック==== | ||
*変数のスコープ分離 | *変数のスコープ分離 | ||
143行目: | 143行目: | ||
==ジェネリクス== | ==ジェネリクス== | ||
− | void hoge(List | + | void hoge(List<T> list){} |
==オブジェクト指向== | ==オブジェクト指向== |
2020年2月15日 (土) 08:01時点における版
Dart
基本
Install
Windows
Mac
$ brew tap dart-lang/dart $ brew install dart
DartPad
APIリファレンス
パッケージ
- Dart標準は、dart:
import 'dart:html';
- ローカルは相対パス(dart:省略)
- pubパッケージマネージャ
Hello
- hello.dart
void main() { print("Hello Dart!"); }
- 実行
>dart hello.dart Hello Dart!
型
数値
numのサブクラス
- int
- double
真偽
- bool
文字列
String
補完
- ${}
print("Hello ${this.name}.");
リテラル
- 一重、二重引用符
- 引用符3�つ重ねで複数行
Runes
- UTF-32型の文字
- 絵文字などの表現
コレクション
List
- []
- add
- insert
- removeAt
- indexOf
- sort
- shuffle
- forEach
- every
- map
- reduce
Map
- {}
- remove
- addAll
- forEach
- containsKey
==
Symbol
- Dartの構文での演算子や識別子
Functions
- 関数
Enum
- 列挙
文法
基本
- セミコロン必須
エントリーポイント
- void main() もしくは、void main(List<String> args)
コメント
- //
- /*...*/
変数
var
- 型推論
- 初期値null
- 型宣言
定数
final
- 再代入不可
const
- コンパイル時点で評価
- オブジェクトの変更禁止
final List<int> list1 = [1, 2, 3]; list1.add(4); // [1, 2, 3, 4]
List<int> list2 = const [1, 2, 3]; list2.add(4); // エラーが発生
関数
- 第1級オブジェクト
- 宣言
<blockquote>常</blockquote>
int someFunc2(int a, int b) { return a + b; }
1行
bool isHoge(String str) => str == "hoge";
引数の指定
someFunc3(a: 1, b: 2, c: 3);
オプション引数
String conc(String a, String b, [String c])
デフォルト引数
int someFunc4(int a, {int b = 2})
無名関数(ラムダ、クロージャ)
list.forEach((item) => print(item));
ブロック
- 変数のスコープ分離
クロージャ
- 変数のスコープから外れても利用できる
カスケード表記
- ..でインスタンスの記述を省略できる
- メソッドを連続で呼び出すことができる
演算子
型演算子
- as
- is
- is!
条件付きメンバアクセス
- ?.
構文
try catch
- 例外チェックは行わない
try { } on Exception catch (e) { } catch (e, s) { // sはスタックトレース } finally{}
ジェネリクス
void hoge(List<T> list){}
オブジェクト指向
- https://dart.dev/guides/language/language-tour#classes
- Dartはクラスとミックスインベースのインターフェースによるオブジェクト指向言語。
- すべてのオブジェクトはクラスのインスタンスでObjectの子孫
キーワード
- 継承 extends
- 継承元呼び出し super
- オーバーライド @overrideアノテーション
クラス
非同期処理
- asyncパッケージをインポート
import 'dart:async';
言語サンプル
File
© 2006 矢木浩人