-
[dart] dart 문법 간단 정리 2Dart 2023. 2. 17. 21:17
dart 문법 간단 정리 1에 이어서 나머지 내용도 정리하겠습니다.
타입 시스템
Dart는 정적 타입 언어이며, 변수와 함수의 인자에 대한 타입을 지정할 수 있습니다.
타입 시스템을 이용하면 코드의 안정성을 높일 수 있으며, 코드를 더욱 명확하게 작성할 수 있습니다.
int add(int x, int y) { return x + y; }
제네릭
Dart는 제네릭을 지원합니다.
제네릭을 사용하면 타입에 대한 제약을 좀 더 강력하게 할 수 있습니다.
class Stack<T> { List<T> _items = []; void push(T item) { _items.add(item); } T pop() { return _items.removeLast(); } } Stack<int> stack = Stack<int>(); stack.push(1); stack.push(2); int item = stack.pop();
스트림
Dart는 스트림(Stream)을 지원합니다. 스트림은 비동기적으로 데이터를 처리하기 위한 방법입니다.
Stream<int> counter() async* { for (int i = 0; i < 6; i++) { await Future.delayed(Duration(seconds: 1)); yield i; } } void main() async { Stream<int> stream = counter(); stream.listen((int value) { print(value); }); }
counter 함수는 0부터 5까지 1초마다 값을 생성하는 스트림을 반환합니다.
listen 메서드를 이용하여 이 스트림을 구독하면, 값을 비동기적으로 받아올 수 있습니다.
컬렉션
Dart는 다양한 컬렉션을 지원합니다. 리스트, 맵, 셋 등 다양한 컬렉션을 사용할 수 있으며, 다양한 기능을 제공합니다.
List<int> numbers = [1, 2, 3, 4, 5]; numbers.forEach((int number) { print(number); }); Map<String, int> ages = { 'john': 30, 'jane': 25, 'bob': 20, }; print(ages['john']); // 30 Set<int> numbers = {1, 2, 3, 4, 5}; print(numbers.contains(3)); // true
비동기 프로그래밍
Dart는 비동기 프로그래밍을 위한 키워드 async와 await을 제공합니다.
async 키워드는 비동기 함수를 정의할 때 사용되며, await 키워드는 비동기 작업이 끝날 때까지 대기하도록 지정합니다.
Future<int> fetchData() async { // 비동기 작업 return 42; } void main() async { int data = await fetchData(); print(data); }
믹스인
Dart는 믹스인을 지원합니다. 믹스인은 클래스에서 코드를 재사용하기 위한 방법입니다.
믹스인을 사용하면 다중 상속을 지원하지 않는 언어에서도 유연한 코드 재사용이 가능합니다.
mixin Flying { void fly() { print("I'm flying!"); } } class Bird with Flying { // ... } Bird bird = Bird(); bird.fly();
'Dart' 카테고리의 다른 글
[dart] dart 문법 간단 정리 1 (0) 2023.02.17 [dart] dart 언어 기본 간단 정리1(class, getter setter, static) (0) 2023.01.07 [dart] dynamic 과 object 의 차이점 (0) 2023.01.06