DEV/Dart(6)
-
Dart Async programming - Stream
Stream Stream은 비동기식 데이터 시퀀스를 제공한다. Streams provide an asynchronous sequence of data. 데이터 시퀀스는 사용자 생성 이벤트나 파일에서 읽은 데이터를 포함한다. Data sequences include user-generated events and data read from files. Stream API에서 await for 또는 listen() 을 사용해서 Stream을 처리할 수 있다. You can process a stream using either await for or listen() from the Stream API. Stream은 오류에 반응하는 방법을 제공한다. Streams provide a way to respond t..
2022.06.24 -
Dart Async programing - Future, await
Future class Null safety 비동기식 연산의 결과이다. The result of an asynchronous computation. 시작하고 바로 결과값을 반환 또는 발생시키는 동기식 연산과 달리, 비동기식 연산은 연산이 시작되고 즉시 결과값을 얻지 못한다. 비동기식 연산은 파일을 읽거나 데이터베이스를 읽거나 웹 페이지를 가져오는 등의 시간이 걸리는 외부의 어떤 프로그램을 기다려야 할 때가 있다. 비동기식 연산은 결과를 사용할 수 있을 때까지 모든 연산을 막기보다는 결국에는 결과가 완료될 Future를 즉시 반환한다. An asynchronous computation cannot provide a result immediately when it is started, unlike a syn..
2022.06.23 -
Dart의 형변환 - List, Map, Set
간단하게 List, Map, Set의 형변환을 알아보자. 사실 알아본다기 보다는 메모해두자~ List void main() { List bts = ['RM', 'Jin', 'Suga', 'J-Hope', 'Jimin', 'V', 'JK', 'RM']; print(bts); print(bts.asMap()); // List -> Map print(bts.toSet()); // List -> Set } => [RM, Jin, Suga, J-Hope, Jimin, V, JK, RM] {0: RM, 1: Jin, 2: Suga, 3: J-Hope, 4: Jimin, 5: V, 6: JK, 7: RM} {RM, Jin, Suga, J-Hope, Jimin, V, JK} Map void main() { Map bt..
2022.06.22 -
Dart의 함수를 알아보자
함수 구조 void printHello() { print('Hello'); } void : 결과값의 타입을 지정해준다. void : return 값이 없음을 의미 -> void는 삭제 가능 반환하는 값이 있는 경우 : 해당 타입으로 지정 eg. int, String, ... printHello : 함수의 이름 () : parameter 입력 { } : 함수의 기능 구현 Parameter (매개변수) Parameter 또는 Argumemt라고도 한다. Positional Parameter 입력한 순서에 따라 값이 정해지는 타입 double divideNumber(int x, int y) { return x / y; } void main() { print(divideNumber(4, 2)); // => 2 ..
2022.06.22 -
Dart - Null safety & Dart Codelab Exercise
Null safety 명시적으로 null 값을 사용하겠다고 설정하지 않는 한 변수에 null 값을 대입할 수 없는 non-nullable로 간주한다. 기본적으로 변수에 null 값이 지정되지 않도록 해주어 그로인해 발생하는 오류 방지한다. version : Dart 2.12 and Flutter 2 // Without null safety: bool isEmpty(String string) => string.length == 0; main() { isEmpty(null); } 위 코드를 Null safety가 적용되지 않은 상태에서 실행하면 .length를 호출할 때 NoSuchMethodError가 발생하게 된다. 이는 null 값을 가진 string 변수의 타입이 Null 클래스이므로 length g..
2022.06.21 -
Dart 시작하기 - 구조 및 변수
Flutter를 시작하기 전에 Dart를 먼저 배워보자. Web IDE - DartPad IDE 설치는 일단 놔두고 웹에서 간단하게 테스트해보자. DartPad 기본 구조 dart는 기본적으로 main 함수에서 시작한다. 코드 종료 시 ;(세미콜론)을 필수로 붙여준다. main() { print('Hello'); } Variable (변수) var 타입을 설정할 필요 없음 선언할 때의 값의 타입으로 설정됨 선택권이 있는 경우 타입을 명시해주는 것이 가독성을 높여 공동 작업에 용이하게 하자 -> String, int, double, List, Map, enum 변수의 타입이 매우 복잡한 경우 var 타입으로 간단하게 명시하기도 한다 eg. Map void main() { var name = 'Dart'; ..
2022.06.21