[TIL] Dart 기초와 기본 문법

티라노·2024년 10월 28일
0

Today I Learned

목록 보기
7/21

Dart 문법의 기초 개념과 기본적인 문법을 알아본다.
Dart 프로그래밍 1-1 ~ 1-8

Dart

Google에서 개발한 오픈 소스 프로그래밍 용어이다.

Dart sdk

Dart 언어로 개발을 쉽게 하기 위한 소스의 모음이다.
라이브러리 : core async math html
커맨드라인 도구 : dart dartaotruntime

변수의 종류

final | 프로그램 실행 시점에 초기화된다. -> 실행 중에 값이 결정되는 변수에는 final
const | 컴파일할 때 초기화된다. -> 프로그램과 관련없이 항상 같은 값에는 const
late | Nonnullable하고 지연 초기화된다.
late 변수는 실제로 사용할 때 뒤늦게 초기화된다.
왜 쓰나? => null값 사용을 최소화하기 위해서

컬렉션

List

순서가 있는 값들이 모인 형태이다.
타입을 명시하는 경우 이렇게 선언한다.

List<int> listName = []; / var listName = <Type>[];

타입을 명시하지 않는 경우에는 이렇게 선언한다.

var listName = [];

타입을 명시하지 않아도 스스로 추론한다.
리스트의 모든 요소는 같은 타입이어야 한다(Object 타입 가능).

알아두면 좋을 만한 명령어들

  • length : 길이
  • isEmpty : 공백 여부
  • indexOf() : 요소를 이용해 인덱스 검색
  • add(요소), addAll([]), remove(요소), removeAt(인덱스) : 요소 추가/삭제
  • clear() : 리스트 비우기

궁금한 점 : 같은 값이 여러 개 있으면 indexOf(), remove() 를 사용했을 때 어떻게 반환하는가?


Set

중복되지 않는 값들이 모인 형태이다. 타입을 명시하는 경우 아래처럼 선언한다.

Set<int> setName = {}; / var setName = <Type>{};

타입을 명시하지 않는 경우 이렇게 선언한다.

var setName = {a, b, c, d, e};

var setName = {}; 형태로 선언하면 맵 타입이 되어버리므로 주의한다.
타입을 명시하지 않아도 스스로 추론한다.
리스트의 모든 요소는 같은 타입이어야 한다(Object 타입 가능).
중복 값을 허용하지 않고 인덱스가 존재하지 않는다.

알아두면 좋을 만한 명령어들

  • length : 요소 개수
  • isEmpty : 공백 여부
  • add(요소), addAll({}), remove(요소) : 요소 추가/삭제
  • contains(), containsAll({}) : 특정 요소가 있는지 검색

Map

key와 value를 하나의 쌍으로 묶어서 모은 형태이다.

Map<key type, value type> mapName = {'key1' : 'value1', 'key2' : 'value2', ...}

타입을 명시하지 않는 경우에는 이렇게 선언한다.

var mapName = {'key1' : 'value1', 'key2' : 'value2', ...} / var mapName = {};

키, 값끼리 타입을 통일해야 한다. 단 final, const를 활용하면 타입 추론을 Object로 하기 때문에 값끼리 타입이 다른 것처럼 보여도 오류가 나지 않는다.
키는 중복할 수 없지만 값은 중복할 수 있다.
중복된 키 값이 있으면 가장 마지막에 있는 개체를 인식한다.

알아두면 좋을 만한 명령어들

  • length : 요소 개수
  • isEmpty : 공백 여부
  • mapName[key1] = value1; : 키의 짝인 값 수정 또는 (새 키인 경우)새로운 페어 삽입
  • remove(key) : 요소 추가/삭제
  • containsKey() : 특정 키가 존재하는지 검색
  • keys, values : 모든 키, 모든 값 반환

0개의 댓글