「Dart」の版間の差分
ナビゲーションに移動
検索に移動
1行目: | 1行目: | ||
− | ==Dart== | + | ==[[Dart]]== |
[[Flutter]] | | [[Flutter]] | | ||
8行目: | 8行目: | ||
==基本== | ==基本== | ||
===Install=== | ===Install=== | ||
− | ====Windows==== | + | ====[[Windows]]==== |
*http://www.gekorm.com/dart-windows/ | *http://www.gekorm.com/dart-windows/ | ||
− | ====Mac==== | + | ====[[Mac]]==== |
*https://dart.dev/get-dart | *https://dart.dev/get-dart | ||
$ brew tap dart-lang/dart | $ brew tap dart-lang/dart | ||
$ brew install dart | $ brew install dart | ||
− | === | + | ===[[Dart]]Pad=== |
*https://dartpad.dartlang.org/ | *https://dartpad.dartlang.org/ | ||
===APIリファレンス=== | ===APIリファレンス=== | ||
*https://api.dart.dev/stable/2.5.0/index.html | *https://api.dart.dev/stable/2.5.0/index.html | ||
===パッケージ=== | ===パッケージ=== | ||
− | * | + | *[[Dart]]標準は、dart: |
import 'dart:html'; | import 'dart:html'; | ||
*ローカルは相対パス(dart:省略) | *ローカルは相対パス(dart:省略) | ||
27行目: | 27行目: | ||
*hello.dart | *hello.dart | ||
void main() { | void main() { | ||
− | print("Hello Dart!"); | + | print("Hello [[Dart]]!"); |
} | } | ||
*実行 | *実行 | ||
>dart hello.dart | >dart hello.dart | ||
− | Hello Dart! | + | Hello [[Dart]]! |
==型== | ==型== | ||
===数値=== | ===数値=== | ||
49行目: | 49行目: | ||
*一重、二重引用符 | *一重、二重引用符 | ||
*引用符3�つ重ねで複数行 | *引用符3�つ重ねで複数行 | ||
− | ==== | + | ====[[R]]unes==== |
*UTF-32型の文字 | *UTF-32型の文字 | ||
*絵文字などの表現 | *絵文字などの表現 | ||
73行目: | 73行目: | ||
====== | ====== | ||
====Symbol==== | ====Symbol==== | ||
− | * | + | *[[Dart]]の構文での演算子や識別子 |
====Functions==== | ====Functions==== | ||
*関数 | *関数 | ||
117行目: | 117行目: | ||
====デフォルト引数==== | ====デフォルト引数==== | ||
int someFunc4(int a, {int b = 2}) | int someFunc4(int a, {int b = 2}) | ||
− | ====無名関数( | + | ====無名関数(ラムダ、[[クロージャ]])==== |
list.forEach((item) => print(item)); | list.forEach((item) => print(item)); | ||
====ブロック==== | ====ブロック==== | ||
*変数のスコープ分離 | *変数のスコープ分離 | ||
− | ====クロージャ==== | + | ====[[クロージャ]]==== |
*変数のスコープから外れても利用できる | *変数のスコープから外れても利用できる | ||
====カスケード表記==== | ====カスケード表記==== | ||
147行目: | 147行目: | ||
==オブジェクト指向== | ==オブジェクト指向== | ||
*https://dart.dev/guides/language/language-tour#classes | *https://dart.dev/guides/language/language-tour#classes | ||
− | * | + | *[[Dart]]はクラスとミックスインベースのインターフェースによるオブジェクト指向言語。 |
*すべてのオブジェクトはクラスのインスタンスでObjectの子孫 | *すべてのオブジェクトはクラスのインスタンスでObjectの子孫 | ||
159行目: | 159行目: | ||
*asyncパッケージをインポート | *asyncパッケージをインポート | ||
import 'dart:async'; | import 'dart:async'; | ||
− | == | + | ==[[言語]]サンプル== |
*https://dart.dev/samples | *https://dart.dev/samples | ||
===File=== | ===File=== | ||
*https://api.dart.dev/stable/2.5.0/dart-io/File-class.html | *https://api.dart.dev/stable/2.5.0/dart-io/File-class.html |
2020年2月16日 (日) 04:23時点における版
Dart
Flutter |
基本
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 矢木浩人