フラッター学習(2)実行エントリ|変数|定数|データタイプ|オペレーター|プロセス制御|キーワード

この章では主に次のことを学びます:ダーツの入り口の方法、変数、コメント、定数、データタイプ

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('我是默认');
  }

注意:

ブレーク

  1. switchステートメントのフローを使用して、switch構造からジャンプします。
  2. loopステートメントでは、プロセスは現在のループからジャンプします。breakループが終了すると、次のコードは実行されません。
  3. breckステートメントがループで実行された場合、ループ本体のbreckの後のステートメントは実行されません。
  4. マルチレベルループでは、breakステートメントは1レベルだけ外側にジャンプできます。
  5. ブレークは、スイッチケースまたはforループとwhileループで使用できます

継続する

  1. これは、ループステートメントでループを終了するためにのみ使用できます。つまり、ループ本体の下にある未実行のステートメントをスキップします。
  2. 継続はforループとwhileループで使用できますが、ループしやすいため、whileループでの使用はお勧めしません。

6.キーワード

キーワード - - -
概要 行う インポート 素晴らしい
なので 動的 スイッチ
主張する そうしないと インターフェース 同期*
列挙型 実装 です この
非同期* 書き出す 図書館 スロー
待つ 外部 混入します true
ブレーク 拡張します 新着 試してみてください
場合 工場 ヌル typedef
キャッチ false オペレーター どこ
クラス 最後の ボイド
const 最後に 再投げる 一方
継続する にとって 戻る
共変 取得する セットする 産出*
デフォルト もし 静的 延期

おすすめ

転載: blog.csdn.net/itjavaee/article/details/109264720