본문 바로가기

DART12

Streams dart.dev/tutorials/language/streams Asynchronous programming: streams Learn how to consume single-subscriber and broadcast streams. dart.dev What's the point? Stream 은 데이터의 비동기 시퀀스를 제공한다 데이터 시퀀스는 사용자 이벤트와 파일로부터 읽은 데이터가 포함된다 Stream API 에서 await for 또는 listen() 을 사용해서 stream 을 처리할 수 있다 에러 대응하는 방법을 제공한다 single subscription 과 broadcast 두 가지 종류가 있다 다트의 비동기 프로그래밍은 Future 와 Stream 클래스가 있다 Future : 즉시 완.. 2020. 9. 19.
Dart # 11 : Callable classes, Isolates, Typedefs Dart : https://dart.dev/guides/language/language-tour 1. Callable classes Dart 클래스의 인스턴스가 함수처럼 호출되도록하려면 call() 메서드를 구현하면 된다 아래 예제에서 WannabeFunction 클래스는 세 개의 문자열을 가져와서 연결하고 각 문자열을 공백으로 구분하고 느낌표를 추가하는 call() 함수를 정의했다 class WannabeFunction { String call(String a, String b, String c) => '$a $b $c!'; } var wf = WannabeFunction(); var out = wf('Hi', 'there,', 'gang'); main() => print(out); // result .. 2020. 8. 28.
Dart #10 - Asychrony support, Generator Dart : https://dart.dev/guides/language/language-tour Dart 라이브러리는 Future 또는 Stream 객체를 반환하는 함수들이 많으며 이러한 함수는 비동기적이다 작업이 완료 될 때까지 기다리지 않고 시간이 많이 걸리는 작업 (ex: I/O) 을 설정 한 후 반환된다 async 및 await 키워드는 비동기 프로그래밍을 지원하므로 동기 코드와 유사한 비동기 코드를 작성할 수 있다 참고 : https://dart.dev/codelabs/async-await 1. Declaring async functions async 함수는 본문이 async 한정자로 표시된 함수로 함수에 async 키워드를 추가하면 Future가 반환된다 String lookUpVersion(.. 2020. 8. 28.
Dart #9 : Library Dart : https://dart.dev/guides/language/language-tour 1. Using libraries import 를 사용하면 라이브러리의 네임 스페이스가 다른 라이브러리 범위에서 사용할 수 있다 // dart:html 라이브러리를 import 한다 import 'dart:html'; // test 패키지 라이브러리를 가져올 경우 import 'package:test/test.dart'; 2. Specifying a library prefix 충돌하는 식별자가있는 두 개의 라이브러리를 가져 오는 경우 접두사를 지정할 수 있다 // lib1 과 lib2 에 모두 Element 클래스가 있는 경우 import 'package:lib1/lib1.dart'; import 'packa.. 2020. 8. 28.
Dart #8 : Generics Dart : https://dart.dev/guides/language/language-tour 기본 배열 타입인 List API 문서를 보면 타입이 실제로 List 인 것을 볼 수 있다 이러한 표기법은 List 를 generic (또는 매개 변수화 된) 타입으로 표시한다. (정식 유형 매개 변수가있는 타입) 대부분의 타입 변수에는 E, T, S, K, V 와 같은 단일 문자들이 있다 0. Why use generics? 제네릭은 type-safety 를 위해 필요하기도 하고 그 외 더 많은 이점이 있다 generic type 을 올바르게 지정하면 코드가 더 잘 생성된다 generic 을 사용하여 코드 중복을 줄일 수 있다 만약 List 에 String 만 포함되도록 하려면 List 으로 선언 할 수 있.. 2020. 8. 28.
Dart #7 : Extension method, Enum, Mixin Dart : https://dart.dev/guides/language/language-tour 1. Extension methodes Dart 2.7에 도입되었다 IDE에서 코드 완성을 사용하는 경우 일반 메서드와 함께 확장 메서드를 제안한다 사용 방법 extension on { ()* } // 확장함수 extension NumberParsing on String { int parseInt() { return int.parse(this); } // ··· } // 아래와 같이 사용할 수 있다 import 'string_apis.dart'; ... print('42'.padLeft(5)); // Use a String method. int.parse('42') print('42'.parseInt()); .. 2020. 8. 28.