상세 컨텐츠

본문 제목

[Dart] 기본 문법 (비동기 Future / Stream / const final)

notes

by 서울의볼 2024. 4. 18. 20:09

본문

나누기 연산자는 int와 double 타입이 나올 수 있음.

int num1 = 10;
int num2 = 20;

int num3;
num3 = num1 / num2;
print(num3);

를 실행시키면 정수 타입으로 정의를 해서 에러가 뜸.

이럴 경우 var num3나 dynamic num3로 하는게 맞음.

 

Srting의 경우 String str3 = '$str2 World' 이런식으로 더하기 연산자를 써도 되지만 달러($)를 많이 쓰는 듯.

 

비교 연산은 == 두개를 씀

 

클래스의 구성요소:

- 필드: 클래스 내부에 선언된 데이터 (변수/상수 등)

- 메서드: 클래스 내부에 선언 된 기능 (함수)

- 생성자*: 클래스 인스턴스를 생성할 때 사용되는 코드, 생성 시 특정 작업을 지시하는 등의 활용이 가능

*생성자를 통해 매개변수를 전달하거나, 클래스 내 필드의 초기값을 설정하는 등의 작업을 할 수 있음.

 

1.2.7 클래스 실습*** 참고

 

 

함수와 메서드 (= 동작에 대한 단위)

기본형태: 리턴타입, 함수명(매개변수parameter) {함수내 동작할 코드}

void는 해당함수를 처리하기 위해 돌려줄 값이 없을 때 쓰임.

분기문: 프로그램이 특정한 상황에 일을 할 지, 안하고 넘길지 (eg. if/else/switch) switch는 최신 버전 다트 3.0에서 바뀜

  - case 앞에 변수가 이미 있다고 상정함

반복문: for / for in / while / do - while

  - for (기준 변수; 조건식; 가변치) { 조건식이 참일 때 반복할 코드 }

  - try catch에서 캐치 뒤에 매개변수로 catch(error, stack) 찍어줌

  - finally 문은 예외가 있든 없든 try catch 이후에 실행하고자 하는 코드가 옴

  - on 문은 특정 에러를 잡아줄 때 쓰임

     : on TypeError catch (e, s) { print(~~~) }

  - throw Exception( ) 예외를 만들어서 던짐

비동기 할 때

async / await / Future: 1회만 응답을 돌려받는 경우 (eg. 서버에 요청해서 응답 받는 경우)

async* / yield / Stream: 지속적으로 응답을 돌려받는 경우 (eg. 타이머처럼 시간 계산을 초단위하는 경우)

 

 

const vs final

final은 런타임 시 변수할당 되고, const는 컴파일타임에 할당 됨.

참고: https://velog.io/@keemeesuu/Flutter-final%EA%B3%BC-const%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-%EB%B0%8F-%EC%98%88%EC%A0%9C

관련글 더보기