ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [dart] dart 문법 간단 정리 2
    Dart 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();

     

     

     

    댓글

Designed by Tistory.