본문 바로가기

Flutter14

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.
Dart #4 : if-else, for/while/do-while, switch, exceptions Dart : https://dart.dev/guides/language/language-tour 1. If and else if, else if 의 조건문은 boolean 값이어야 한다 if (isRaining()) { you.bringRainCoat(); } else if (isSnowing()) { you.wearJacket(); } else { car.putTopDown(); } 여기서 잠깐, Collection if 조건으로 컬렉션의 값을 조정하고 싶을 때 아래처럼 사용한다 var nav = [ 'Home', 'Furniture', 'Plants', if (promoActive) 'Outlet' ]; 2. For loops var message = StringBuffer('Dart is fun').. 2020. 8. 27.
Dart #3 : Operators Dart : https://dart.dev/guides/language/language-tour 0. Operators 기본 : https://dart.dev/guides/language/language-tour#operators 1. Arithmetic operators assert(2 + 3 == 5); assert(2 - 3 == -1); assert(2 * 3 == 6); assert(5 / 2 == 2.5); // 결과 값은 double 타입 assert(5 ~/ 2 == 2); // 나눗셈의 몫으로 결과 값은 int 타입 assert(5 % 2 == 1); // 나눗셈의 나머지로 결과 값은 int 타입 assert('5/2 = ${5 ~/ 2} r ${5 % 2}' == '5/2 = 2 r 1.. 2020. 8. 27.