본문 바로가기

기타개발32

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.
Dart #6 : Abstract, Implicit interface, Extends Dart : https://dart.dev/guides/language/language-tour 1. Abstract classes abstract 한정자를 사용하여 인스턴스화 할 수없는 추상 클래스를 정의한다 추상 클래스가 인스턴스화 가능한 것처럼 보이게하려면 팩토리 생성자를 정의한다 // 이 클래스는 abstract 클래스이므로 인스턴스화 할 수 없다 abstract class AbstractContainer { // 생성자, 필드, 메소드를 정의한다 // 추상 메소드 void updateChildren(); } 2. Abstract methods 인스턴스, getter/setter 메서드는 추상적 일 수 있으며 인터페이스를 정의하지만 구현은 다른 클래스에서 한다 추상 메서드는 추상 클래스에만 존재할.. 2020. 8. 28.
Dart #5 : Classes, Constructor Dart : https://dart.dev/guides/language/language-tour 다트는 클래스와 Mixin 기반 상속이있는 객체 지향 언어이다 모든 객체는 클래스의 인스턴스이며 모든 클래스는 Object 의 자식이다 믹스인 기반 상속은 모든 클래스 (Object 제외) 에 하나의 수퍼 클래스가 있지만, 클래스 본문은 여러 클래스 계층에서 재사용 될 수 있다 확장 메서드는 클래스를 변경하거나 하위 클래스를 만들지 않고 클래스에 기능을 추가하는 방법이다 1. Class members 객체는 함수와 데이터 (각각 메서드 및 인스턴스 변수) 로 구성된 멤버가 있다 메소드를 호출하면 객체에서 invoke 한다: 메소드는 해당 객체의 함수와 데이터에 액세스 할 수 있다 var p = Point(2,.. 2020. 8. 28.