この章では主に次のことを学びます:ダーツの入り口の方法、変数、コメント、定数、データタイプ
1.実行エントリ
// 无返回值入口方法
void main() {
// 打印
print('helloWorld');
}
main() {
// 打印
print('helloWorld');
}
2.変数
2.1文字列
// 未初始化,默认值null
String str;
print(str);
// 字符串定义
String s1 = 'helloWorld';
print(s1);
String s2 = '222';
// 字符串拼接
print(s1 + s2);
//
String s3 = '''你好,
我们一起学习Dart ''';
print(s3);
2.2 int(整数)
// 未初始化,默认值null
int n1;
print(n1);
int n2 = 100;
print(n2);
2.3ダブル(10進数)
// 未初始化,默认值null
double d1;
print(d1);
double d2 = 1.0;
print(d2);
2.4 bool(ブール値)
// 未初始化,默认值null
bool b1;
print(b1);
bool b2 = false;
print(b2);
2.5リスト(コレクション)
// 未初始化,默认值null
List list;
print(list);
//创建一个int类型的list
List list1 = [1, 2, 3];
// 输出[1, 2, 3]
print(list1);
// 使用List的构造函数
List list2 = new List();
//添加单个元素
list2.add(1);
//添加多个元素
list2.addAll([2, 3, 4, 5]);
print(list2);
// 获取集合长度
print(list2.length);
// / 获取第一个元素
print(list2.first);
// 获取元素最后一个元素
print(list2.last);
// 利用索引获取元素
print(list2[0]);
// 查找某个元素的索引号
print(list2.indexOf(2));
// 删除指定位置的元素,返回删除的元素
print(list2.removeAt(0));
// 删除指定元素,成功返回true,失败返回false
// 如果集合里面有多个2, 只会删除集合中第一个改元素
list2.remove(2);
// 删除最后一个元素,返回删除的元素
list2.removeLast();
// 删除指定范围(索引)元素,含头不含尾
list2.removeRange(0, 1);
// 删除指定条件的元素(这里是数字大于2)
list2.removeWhere((item) => item > 2);
// 删除所有的元素
list2.clear();
print(list2);
// 限定list的长度添加int参数,表示List固定长度,不能进行添加 删除操作
List list3 = new List(1);
// null
print(list3[0]);
// [null]
print(list3);
2.6マップ(辞書)
// 未初始化,默认值null
Map map;
print(map);
//创建一个map
Map map1 = {'key': '0', 'value': '1'};
// {key: 0, value: 1}
print(map1);
//先声明一个map,再赋值
Map map2 = new Map();
map2['key'] = '0';
map2['value'] = '1';
// {key: 0, value: 1}
print(map2);
// 指定键值对参数类型
var map3 = new Map<int, String>();
// Map的赋值,中括号中是Key,这里可不是数组
map3[1] = '123';
//Map中的键值对是唯一的Key如果存在,Value会覆盖之前的数据
map3[1] = '321';
// map里面的value可以相同
map3[2] = '123';
// map里面value可以为空字符串
map3[3] = '';
// map里面的value可以为null
map3[4] = null;
print(map3);
// 查看Map是否含有某Key
print(map3.containsKey(1));
//删除某个键值对
map3.remove(1);
print(map3);
2.7 var | Object | dynamic(動的タイプ)
// 定义变量,没有明确类型,编译的时候根据值明确类型
var str1 = 'helloWorld';
Object str2 = '张三';
dynamic str3 = '李四';
print(str1);
print(str2);
print(str3);
3.一定
// 使用final 或者 const 定义时就必须初始化,并且值只能设置一次
final String str = '1';
const String str2 = '2';
//无法再次赋值 The final variable 'str' can only be set once
// str = '3';
// str2 = '3';
//flnal 或者 const 不能和 var 同时使用
// final var str3= '3';
// const var str3= '3';
4.オペレーター
説明 | オペレーター | ||
---|---|---|---|
Unarypost演算子 | expr++ expr-- () [] . ?. |
||
Unary pre-operator | expr !expr ~expr ++expr --expr |
||
乗算と除算 | * / % ~/ |
||
加減 | +- | ||
変位 | << >> |
||
ビットワイズと | & | ||
ビットワイズまたは | |||
ビットワイズXOR | ^ | ||
論理的および | && | ||
論理OR | |||
関係とタイプの判断 | >= > <= < as is is! |
||
待つ | == != |
||
空の場合 | ?? |
||
条件式 | expr1 ? expr2 : expr3 |
||
割り当て | = *= /= ~/= %= += -= <<= >>= &= ^= = ??= |
||
カスケード | .. |
5.プロセス制御
- if ... else
- にとって
- do-whildしながら
- 休憩続行
- スイッチケース
- アサート(チェックモードでのみ有効)
int i = 0;
// 单独一个条件
if (i == 0) {
print('i==0');
}
// 对立条件
if (i != 0) {
print('i!=0');
} else {
print('i==0');
}
// 多条件
if (i > 0) {
print('i>0');
} else if (i < 0) {
print('i<0');
} else {
print('i==0');
}
// 循环
for (int j = 0; j < i; j++) {
print(j);
}
for (int j = 1; j <= 100; j++) {
if (j == 100) {
// 退出循环
break;
}
if (j % 2 != 0) {
// 跳过接下来的操作
continue;
}
print(j);
}
// 循环
while (i == 0) {
i += 1;
}
// 不管while里的条件是否满足,都会先执行一次方法体
do {
i += 1;
print('i==0');
} while (i == 0);
//
switch (i) {
case 1:
print('我是1');
break;
case 2:
print('我是2');
break;
default:
print('我是默认');
}
注意:
ブレーク
- switchステートメントのフローを使用して、switch構造からジャンプします。
- loopステートメントでは、プロセスは現在のループからジャンプします。breakループが終了すると、次のコードは実行されません。
- breckステートメントがループで実行された場合、ループ本体のbreckの後のステートメントは実行されません。
- マルチレベルループでは、breakステートメントは1レベルだけ外側にジャンプできます。
- ブレークは、スイッチケースまたはforループとwhileループで使用できます
継続する
- これは、ループステートメントでループを終了するためにのみ使用できます。つまり、ループ本体の下にある未実行のステートメントをスキップします。
- 継続はforループとwhileループで使用できますが、ループしやすいため、whileループでの使用はお勧めしません。
6.キーワード
キーワード | - | - | - |
---|---|---|---|
概要 | 行う | インポート | 素晴らしい |
なので | 動的 | に | スイッチ |
主張する | そうしないと | インターフェース | 同期* |
列挙型 | 実装 | です | この |
非同期* | 書き出す | 図書館 | スロー |
待つ | 外部 | 混入します | true |
ブレーク | 拡張します | 新着 | 試してみてください |
場合 | 工場 | ヌル | typedef |
キャッチ | false | オペレーター | どこ |
クラス | 最後の | 部 | ボイド |
const | 最後に | 再投げる | 一方 |
継続する | にとって | 戻る | と |
共変 | 取得する | セットする | 産出* |
デフォルト | もし | 静的 | 延期 |