Flutter를 배우기 전에 Dart를 이해하고자 공부한 내용을 기록한다.
참고:
https://nomadcoders.co/dart-for-beginners/lobby
Dart 시작하기 – 노마드 코더 Nomad Coders
Flutter 앱 개발을 위한 Dart 배우기
nomadcoders.co
main 함수
void main() {
print('hello World!');
}
main 함수가 필수이며, c언어처럼 ; 콜론을 붙여야 한다. 일부러 없애는 경우도 있기도 한다.
var
void main() {
var name1 = "No.1 Name";
String name2 = "No.2 Name";
print(name1 + name2);
// No.1 NameNo.2 Name
}
var이란 변수이며, data type이 아닌 var만 쓰면 literal 값을 토대로 type을 guess한다. 한 번 설정되면 데이터 타입은 바꿀 수 없다.
dynamic
void main() {
var name;
// or dynamic name;
if (name is String) {
// name can be used as String
}
if (name is int) {
// name can be used as int
}
}
데이터 타입이 변수 선언시에 결정되지 않고 후에 결정되는 타입이다. 변수의 타입에 따라 실행할 수 있는 메소드가 다르기 때문에 조건문으로 확인하여 실행하면 된다.
nullable variables
void main() {
// name can be null or String
String? name = 'Hi';
name?.isEmpty;
// these are same
// if (name != null) {
// name.isEmpty;
// }
}
코틀린에서 배운 것처럼 dart에서도 null 값을 가질 수 있는 데이터 타입이 따로 있다. 데이터 타입 옆에 ?를 붙여서 정의하면 된다. 그리고 만약 null 값을 가진다면 특정 메소드를 실행하지 못하니, 변수의 이름 옆에 ?를 붙여 null이 아닌지를 확인할 수 있다.
final
void main() {
final num = 0;
// final can be set only once
// num = 1;
}
final 변수란 상수와 비슷하다. 한 번 설정해두면 값을 변경할 수 없다. 나중의 constant와 조금의 차이가 있다.
late
void main() {
late final num;
// late can be set after defined
num = 1;
}
late가 붙으면 변수를 선언할 때가 아니라 나중에 값을 정의할 수 있다.
constant
void main() {
const text = "Hello";
// const can not be changed
// text = "hi";
}
dart에서의 constant는 compile-time으로, compile 이전에 값을 알아야 한다. 예시로 그 값이 API로부터 오거나 사용자가 화면에서 입력해야 하는 값이라면 그건 const가 아닌 final이나 var가 되어야 한다.
'Flutter 공부' 카테고리의 다른 글
| Dart: class (0) | 2023.04.06 |
|---|
댓글