| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「Dart」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
(ページの作成:「==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
+
  >dart hello.dart
 
  Hello Dart!
 
  Hello Dart!
 
==型==
 
==型==
82行目: 82行目:
 
*セミコロン必須
 
*セミコロン必須
 
====エントリーポイント ====
 
====エントリーポイント ====
*void main() もしくは、void main(List<String> args)
+
*void main() もしくは、void main(List&lt;String&gt; args)
 
====コメント ====
 
====コメント ====
 
*//
 
*//
97行目: 97行目:
 
*コンパイル時点で評価
 
*コンパイル時点で評価
 
:;オブジェクトの変更禁止
 
:;オブジェクトの変更禁止
  final List<int> list1 = [1, 2, 3];
+
  final List&lt;int&gt; list1 = [1, 2, 3];
 
  list1.add(4); // [1, 2, 3, 4]   
 
  list1.add(4); // [1, 2, 3, 4]   
  
  List<int> list2 = const [1, 2, 3];
+
  List&lt;int&gt; list2 = const [1, 2, 3];
 
  list2.add(4); // エラーが発生
 
  list2.add(4); // エラーが発生
 
===関数===
 
===関数===
 
*第1級オブジェクト
 
*第1級オブジェクト
 
*宣言
 
*宣言
<blockquote></blockquote>
+
&lt;blockquote&gt;&lt;/blockquote&gt;
 
  int someFunc2(int a, int b) {   
 
  int someFunc2(int a, int b) {   
 
   return a + b;  
 
   return a + b;  
 
  }
 
  }
 
====1行====
 
====1行====
  bool isHoge(String str) => str == "hoge";
+
  bool isHoge(String str) =&gt; 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) => print(item));
+
  list.forEach((item) =&gt; print(item));
 
====ブロック====
 
====ブロック====
 
*変数のスコープ分離
 
*変数のスコープ分離
143行目: 143行目:
  
 
==ジェネリクス==
 
==ジェネリクス==
  void hoge(List<T> list){}
+
  void hoge(List&lt;T&gt; list){}
  
 
==オブジェクト指向==
 
==オブジェクト指向==

2020年2月15日 (土) 08:01時点における版

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){}

オブジェクト指向

キーワード

  • 継承 extends
  • 継承元呼び出し super
  • オーバーライド @overrideアノテーション

クラス

非同期処理

  • asyncパッケージをインポート
import 'dart:async';

言語サンプル

File