Dart(2)-ループ式、リスト、セット、マップの一般的なプロパティとメソッド

Dart(1)-変数、定数、基本型、演算子、条件付き判断、および型変換

ダーツのループ式

forループ

for (int i = 1; i<=100; i++) {   
  print(i);
}

次のように書くこともできます。

for (var i = 1; i<=10; i++) {
  print(i);
}

トラバーサルの場合、次のListことができます。

var list = <String>["张三","李四","王五"];
for (var element in list) {
  print(element);
}

Map反復には、ループステートメントを使用することもできますfor

var person={
  "name":"小明",
  "age":28,
  "work":["程序员","Android开发"]
};

person.forEach((key, value) {
  print(value);
});

whileステートメント

while2つのステートメント形式があります。

while(表达式/循环条件){    
 
}  
    
do{
 语句/循环体
 
}while(表达式/循环条件);

知らせ:

  • 1.最後のセミコロンを忘れないでください
  • 2.ループ条件で使用される変数は初期化する必要があります
  • 3.ループ本体には、ループを終了するための条件が必要です。そうでない場合、無限ループが発生します。

以下のコードを参照してください。

int i = 1;
while (i <= 10) {
  print(i);
  i++;
}

do...while()最大の違いは、条件が真であるかどうかに関係なく、少なくとも1回は実行されることです。

var i = 2;
do{
  print('执行代码');
}while(i < 2);

ステートメントを中断して続行する

breakステートメント関数:

  • switchステートメントのswitch構造からフローを作成します。
  • loopステートメントでは、プロセスは現在のループからジャンプします。breakループが終了すると、次のコードは実行されません。

次のことを強調する必要があります。

  • ステートメントがループ内ですでに実行されている場合、breakループ本体のブレーク後のステートメントは実行されません。
  • 多層ループでは、breakステートメントは1つのレベルしかジャンプできません

breakループやループswitch caseだけでなく、使用することもできます。forwhile

継続ステートメントの機能:

ループステートメントでのみ使用して、現在のループを終了します。つまり、ループ本体の下にある未実行のステートメントをスキップして、次にループを実行するかどうかを判断します。

continueforループやループで使用できますが、ループwhileでの使用はお勧めできませんwhile。また、誤って死んでしまう可能性があります。

休憩使用:

//如果 i等于4的话跳出循环
for(var i=1;i<=10;i++){
  if(i==4){
    break;  /*跳出循环体*/
  }
  print(i);
}
//break语句只能向外跳出一层
 for(var i = 0;i < 5;i++){
    for(var j = 0;j< 3;j++){
      if(j == 1){
        break;
      }
    }  
 }

whileループが飛び出します:

//while循环 break跳出循环

var i = 1;

while(i< =10){
  if(i == 4){
    break;
  }
  print(i);
  i++;
}

引き続き使用:

//如果i等于4的话跳过

for(var i=1;i<=5;i++){
  if(i == 2){
    continue;  //跳过当前循环体 然后循环还会继续执行
  }
  print(i);
}

一般的なプロパティとメソッドを一覧表示します

一般的なプロパティ:

  • length長さ
  • reversedフリップ
  • isEmpty空です
  • isNotEmpty空ではありません

一般的な方法:

  • add増加
  • addAll連結配列
  • indexOf入ってくる特定の値を見つける
  • remove着信する特定の値を削除する
  • removeAt着信インデックス値を削除します
  • fillRange改訂
  • insert(index,value)指定した場所に挿入
  • insertAll(index,list)指定した場所にリストを挿入します
  • toList()他のタイプをリストに変換する
  • join()リストを文字列に変換
  • split()文字列をリストに変換する
  • forEach
  • map
  • where
  • any

いくつかの一般的なプロパティとメソッドは例を使用します。

var list=['张三','李四','王五',"小明"];
print(list.length);
print(list.isEmpty);
print(list.isNotEmpty);
print(list.reversed);  //对列表倒序排序

print(list.indexOf('李四'));    //indexOf查找数据 查找不到返回-1  查找到返回索引值

list.remove('王五');

list.removeAt(2);

list.fillRange(1, 2,'a');  //修改 1是开始的位置 2二是结束的位置

print(list);

list.insert(1,'a');

print(list);

list.insertAll(1, ['a','b']); //插入多个

設定

Setの主な機能は、配列の重複コンテンツを削除することです。これは、順序がなく、繰り返すことができないコレクションであるため、インデックスで値を取得することはできません。

var s = new Set();
s.add('A');
s.add('B');
s.add('B');

print(s); //{A, B}

add同じコンテンツを追加できない場合

セットaddは、メソッドを介して1つ追加Listし、同じ値の要素をクリアできます。

var list = ['香蕉','苹果','西瓜','香蕉','苹果','香蕉','苹果'];
var s = new Set();
s.addAll(list);
print(s);
print(s.toList());

一般的なプロパティとメソッドをマップする

マップは順序付けられていないキーと値のペアであり、その一般的なプロパティは次のとおりです。

一般的なプロパティ:

  • keysすべてのキー値を取得する
  • valuesすべての値を取得
  • isEmpty空です
  • isNotEmpty空ではありません

一般的な方法:

  • remove(key)指定したキーのデータを削除します
  • addAll({...})マップをマージして、マップに属性を追加します
  • containsValueマップ内の値を表示するとtrue/falseが返されます
  • forEach
  • map
  • where
  • any
  • every

マップ変換:

List list = [1, 3, 4];
//map转换,根据返回值返回新的元素列表
var newList = list.map((value) {
  return value * 2;
});
print(newList.toList());

ここで、条件を満たす要素を取得します。

List list = [1,3,4,5,7,8,9];

var newList = list.where((value){
    return value > 5;
});
print(newList.toList());

any:条件に一致する要素があるかどうか

List list = [1, 3, 4, 5, 7, 8, 9];
//只要集合里面有满足条件的就返回true
var isContain = list.any((value) {
  return value > 5;
});
print(isContain);

すべて:それらのすべてが条件を満たす必要があります

List myList=[1,3,4,5,7,8,9];
//每一个都满足条件返回true  否则返回false
var flag = myList.every((value){
  
    return value > 5;
});
print(flag);

セットはforEachを使用してトラバースされます:

var s=new Set();

s.addAll([11,22,33]);

s.forEach((value) => print(value));

マップはforEachを使用してトラバースされます:

Map person={
  "name":"张三",
  "age":28
};

person.forEach((key,value){
  print("$key -> $value");
});

おすすめ

転載: juejin.im/post/7116159285054144526