다트 언어의 특징 / 로또 번호 생성기

해버니·2022년 6월 29일
0

flutter

목록 보기
2/3
post-thumbnail

Do it! 플러터 앱 프로그래밍 책을 보고 정리한 내용입니다.



다트 언어의 8가지 특징

① 다트는 main() 함수로 시작합니다.

② 다트는 어디에서나 변수를 선언하고 사용할 수 있습니다.

③ 다트에서는 모든 변수가 객체입니다. 그리고 모든 객체는 Object 클래스를 상속받습니다.

④ 다트는 자료형이 엄격한 언어입니다. 이 말은 변수에 지정한 자료형과 다른 유형의 값을 저장하면 오류가 발생한다는 의미입니다. 만약 여러 자료형을 허용하려면 dynamic 타입을 이용할 수 있습니다.

⑤ 다트는 제네릭 타입을 이용해 개발할 수 있습니다. 그리고 List<int>처럼 int형을 넣을 수도 있고, List<dynamic>처럼 다양한 데이터를 넣을 수도 있습니다.

⑥ 다트는 public, protected 같은 키워드가 없습니다. 만약 외부로 노출하고 싶지 않다면 변수나 함수 이름 앞에 언더스코어(_) 를 이용해 표시할 수 있습니다.

⑦ 변수나 함수의 시작은 언더스코어 또는 문자열로 시작하고 그 이후에 숫자를 입력할 수 있습니다.

⑧ 다트는 삼항 연산자를 사용할 수 있습니다.




비동기 처리 방식

다트는 비동기 처리를 지원하는 언어입니다.

비동기(asynchronous)란 언제 끝날지 모르는 작업을 기다리지 않고 다음 작업을 처리하게 하는 것을 의미합니다. 일반적으로 네트워크에서 데이터를 가져오거나 데이터베이스 쓰기, 파일 읽기 등의 작업은 상황에 따라 언제 끝날지 알 수 없으므로 비동기로 처리합니다.





예제

결과가 어떻게 나올 지 생각해보세요!
필자는 12 end process 라고 생각했지만 아니었습니다. 😂

정답은

end process
12

였습니다.



checkVersion() 함수에서 Future + async → 함수를 비동기로 만들겠다는 의미입니다.

① await가 붙은 함수를 따로 처리하고 그 결과를 Future에 저장해둘테니 먼저 main() 함수의 나머지 코드를 모두 실행하라.
② 모두 실행했으면 그때 Future 클래스에 저장해 둔 결과를 이용해서 checkVersion() 함수의 나머지 코드를 실행하라.


await 키워드는 처리를 완료하고 결과를 반환할 때까지 이후 코드의 처리를 멈추는 것입니다.

이처럼 비동기 함수에서 어떤 결괏값이 필요하다면 해당 코드를 await로 지정합니다.
그러면 네트워크 지연 등으로 제대로 된 값을 반환받지 못한 채 이후 과정이 실행되는 것을 방지할 수 있습니다.



로또 번호 생성기

import 'dart:math' as math; 	//두번째 줄

as math 코드는 import한 dart:math 라이브러리를 math라는 이름으로 사용하겠다는 의미입니다.

HashSet를 사용하려면 dart:collection이라는 라이브러리를 import해야 합니다. Set는 중복을 허용하지 않는 리스트라고 보면 됩니다.

0개의 댓글