[TIL] 2022-06-04 Dart Language - #12

Jongdroid·2022년 6월 4일
0

TIL

목록 보기
12/24
post-thumbnail

오늘의 다트 키워드는 Operator, List, Map, Set 입니다.

Operator

  • ??=의 의미
    • 지정된 변수가 null일 경우 삽입한 데이터가 저장됩니다.
int? number = null;
number ??= 5; //5
  • 타입확인
    • print(number is int); // true
    • 해당 변수가 지정한 타입과 일치하는지 확인합니다.
  • and 조건과 or조건
    • 조건문 혹은 반복문 코드를 작성하면 반드시 조건식을 설계합니다.
    • 조건식을 2개 이상을 만들어서 모든 조건식이 일치할 때 참이되는 and조건과
    • 조건식중 1개 이상의 조건식이 일치할 때 참이되는 or조건이 있습니다.
  // && 나이가 18세를 초과하면서 30세 미만이다.
  int userAge = 27;
  print(userAge > 18 && userAge < 30);

  // || 나이가 18세를 초과하거나 30세 미만이다.
  print(userAge > 18 || userAge < 30);

여담으로 화장실에서 이런 문구를 본 적이 있습니다.

해당 문구는 and조건으로 작성되었습니다.
몰래 찍고 && 유포하면 검거 됩니다. --> 찍고 유포를 하지않으면요? 라는 말이 나올 수 있는 것 처럼
코드를 신중하게 작성해야 함을 다시 느낍니다.


List

  • 자바에서 배열과 거의 유사한 녀석입니다.
  • 리스트는 중복 값을 취할 수 있습니다.
  • 다음과 같이 선언합니다.
List<데이터타입> 리스트명 = []; 
List<String> family = ['아버지', '어머니', '누나'];

리스트 추가, 삭제 등 여러가지 작업을 할 수 있습니다.

  • 리스트 요소 출력
    • print(family[0]); // 아버지
    • 인덱스는 0부터 시작합니다!!
    • print(family) // 리스트 모든 요소가 출력됩니다.
  • 리스트 길이 출력
    - print(family.length); // 3
  • 리스트 추가 삭제
    • 리스트에 가장 끝에 요소 추가 family.add('나');
    • 추가한 리스트 삭제 family.removeAt(3); 3번째 인덱스의 요소를 삭제합니다.
  • 특정 값이 존재하는지 확인
    - print(family.contains('아버지'); // true

Map

  • 리스트는 하나 하나가 개별 값이지만, Map은 key-value로 이루어 집니다.
  • key와 value 타입을 선언합니다.
  • 원칙적으로 key를 통해 value 값을 찾습니다.

같은 데이터 타입

같은 데이터 타입
Map<String, String> language = {
	'Dart' : 'Flutter',
    'Java' : 'Android',
};

다른 데이터 타입

같은 데이터 타입
Map<String, bool> language2 = {
	'Dart' : true,
    'Dog' : false,
};
  • 출력
    print(language2['Dart']; // true

  • 추가
    language2['Cat'] = false;

  • 값 변경
    language2['Dog'] = true;

  • 삭제
    language2.remove('Dog');

  • 키값만 가져오기
    print(language2.keys);

  • value 가져오기
    print(language2.values);


Set

  • List와 상당히 유사합니다.
  • List와 차별점은 중복 값이 들어가면 자동으로 삭제합니다.
 final Set<String> userName = {'jongdroid', 'flutter', 'dart', 'flutter'};
 print(userName); // {jongdroid, flutter, dart}

List, Map, Set 모두 삭제 추가 변경 등 유사한 함수를 사용할 수 있습니다.
어떤 경우에 어떤 녀석을 사용할 지 조금 더 내공이 필요할 것 같습니다.

profile
만드는 사람이 수고하면 쓰는 사람이 편하고 만드는 사람이 편하면 쓰는 사람이 수고롭다.

0개의 댓글