fetchEgg() async { // 동시성처리 (await등 키워드 사용) await Future.delayed(Duration(seconds: 2)); // 이 함수를 기다려줘 return Chicken('Big'); // } void main() async { // 동시성처리 (await등 키워드 "> fetchEgg() async { // 동시성처리 (await등 키워드 사용) await Future.delayed(Duration(seconds: 2)); // 이 함수를 기다려줘 return Chicken('Big'); // } void main() async { // 동시성처리 (await등 키워드 "> fetchEgg() async { // 동시성처리 (await등 키워드 사용) await Future.delayed(Duration(seconds: 2)); // 이 함수를 기다려줘 return Chicken('Big'); // } void main() async { // 동시성처리 (await등 키워드 ">
[flutter](https://torch-juice-f1f.notion.site/flutter-198367faeda880c59ef2dd4ff458cbb9)
/*--Priave--*/
_ //시작 함수-변수명, 코딩컨벤션아닌 구속력있는 문법임
/*--CLASS--*/
abstract class Animal // 추상클래스
mixin Flyable // 첨가클래스
class Bird
class Chicken extends Bird implements Animal with Flyable { // 상속받아 구현하고 첨가하기
String name;
Chinken({ // 생성자
required String size,
this.name, // 맴버변수
String color, // 이넘마냥 관습적 , 종료
}) : super(size: birdSize); // 부모생성자 호출
}
/*--ANNOTATION--*/
@override
/*--KEYWORD--*/
"" '' // 문자열 리터럴로서 완전히 동일한 기능과 문법, 상호표현을 위해 보완적 사용됨
import 'dart:math' as math; math.pow(2, 2); // 기본라이브러리 활용
import 'myfolder/mymath.dart' as namespaceMymath; // 네임스페이스느낌, 소속 클래스등 접근
const String str = "string"; // 컴파일타임 상수조건
final String str; // 한번은 할당가능, 변경불가
Object? obj; // 자료형? 데이터가 없는 경우 허용 (nullptr)
var str; // auto
enum { ... } // enum class 느낌, 단 각 요소하위에 .index가 있어 상수로 사용가능
/*--FUNCTION--*/
Future<Chicken> fetchEgg() async { // 동시성처리 (await등 키워드 사용)
await Future.delayed(Duration(seconds: 2)); // 이 함수를 기다려줘
return Chicken('Big'); //
}
void main() async { // 동시성처리 (await등 키워드 사용)
try {
Chicken myChicken = await fetchEgg(); // 이 함수를 기다려줘
} catch(e) {
print('error info: $e');
}
}
// dart는 오버로딩개념 비존재(함수명은 단 한번만 사용)
Chicken beBorn(String size = 'Small', {String name}) {} // 중괄호: 선택 매개변수 지정
beBorn(); // small
beBorn('Small'); // small
beBorn(name: 'GoldDuck'); // small goldduck
beBorn(size: 'Small', name: 'GoldDuck'); // small goldduck
Chicken beBorn({required String size, String name}) {} // 중괄호내, required 필수 매개변수 지정(초기화값불가)
beBorn('Big');
beBorn(size: 'Big', name: 'GoldDuck');
/*--CONTAINER--*/
// 자료형 섞어쓰면 자동으로 상위 클래스로 구성됨 (double + int → num | String + num → Object)
List<String> exList = ["kakao", "naver", "samsung", "hyundai"]; // list
Map<String, int> exMap = {"kakao" : 4, "naver" : 3, "samsung" : 1, "hyundai" : 2} // map
int value = exMap["LG"] ?? 0; // 없으면 0