Dart (2) - 루프 표현식의 공통 속성 및 메소드, List, Set 및 Map

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 문

while두 가지 명령문 형식이 있습니다.

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

알아채다:

  • 1. 마지막 세미콜론을 잊지 마세요
  • 2. 루프 조건에서 사용되는 변수를 초기화해야 합니다.
  • 3. 루프 본문에는 루프를 종료하는 조건이 있어야 합니다. 그렇지 않으면 무한 루프가 발생합니다.

아래 코드를 참조하세요.

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

do...while()가장 큰 차이점은 조건이 참인지 아닌지에 관계없이 적어도 한 번은 실행된다는 것입니다.

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

break 및 continue 문

break 문 함수:

  • switch명령문 의 switch구조 에서 흐름을 만드십시오.
  • 루프문에서 프로세스는 현재 루프 밖으로 점프하며, break루프가 종료되면 다음 코드는 실행되지 않습니다.

다음을 강조해야 합니다.

  • 문이 이미 루프에서 실행된 break경우 루프 본문에서 break 이후의 문이 실행되지 않습니다.
  • 다층 루프에서 break명령문은 한 수준으로만 이동할 수 있습니다.

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동일한 내용을 추가할 수 없는 경우 .

Setadd 은 메소드 를 통해 하나를 추가 List하고 동일한 값을 가진 요소를 지울 수 있습니다.

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

공통 속성 및 메서드 매핑

Map 은 순서가 지정되지 않은 키-값 쌍이며 공통 속성은 다음과 같습니다.

공통 속성:

  • 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);

every: 모두가 조건을 충족해야 합니다.

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
рекомендация