VScode로 Dart 문서를 작성할 때 Dart 확장 프로그램을 깔면 좋습니다.
1. 변수
// 타입은 총 4개
int n1 = 1;
double d1 = 10.1;
bool b1 = true;
String s1 = "홍길동";
void main() {
print("n1 ${n1.runtimeType}");
print("d1 ${d1.runtimeType}");
print("b1 ${b1.runtimeType}");
print("s1 ${s1.runtimeType}");
}
- class 밖에 적을 경우 static 변수로 취급합니다.
- int 가 자바의 Integer 역할까지 가능합니다.
- int.method() 가 가능합니다.
- print 함수의 경우 “n1 “ + n1.runtimeType이 아니라 "n1 ${n1.runtimeType}" 처럼 1번에 작성 가능합니다.
var n2 = 10;
dynamic n3 = 20;
void main() {
n2 = 10.5; // 불가능
n3 = 20.5; // 가능
}
- 타입 추론
- 값이 들어올 때 타입을 추론하여 변수를 초기화합니다.
- var 은 타입 변경이 불가능하고 dynamic은 타입 변경이 가능합니다.
2. null 대체 연산자
void main() {
String username = null; // 오류
String? username = null; // ? 붙여야 null을 가질 수 있는 타입
print(username == null ? "홍길동" : username);
print(username ?? "홍길동"); // null 대체 연산자
}
- 변수가 null로 초기화되려면
?
가 타입 뒤에 붙어야 합니다.
??
→ null 대체 연산자입니다.
3. 익명 함수
- 익명 함수는 이름이 없는 함수로 일회성 작업이나 다른 함수에 인자로 전달될 때 사용됩니다.
var j = return1() { // 문법 오류
return 1;
};
var j = () { // 익명 함수
return 1;
};
void main() {
int result = j();
print(result);
}
- var j = return1() { return 1; } 을 하려면 일반적인 함수 정의를 활용합니다.
int return1() {
return 1;
}
var j = return1;
함수(Function)은 클래스 외부에 존재하고 메서드(method)는 클래스 내부에 존재합니다.
Share article