
# 예시
int a; // 식별자는 a
void foo(); // 식별자는 foo
Tip! Dart 의 내장 식별자
Tip! Dart 의 문맥 키워드
async ∙ async* ∙ sync* 로 표시된 ( 비동기∙동기 ) 함수의 바디에서는 식별자로 사용 불가await ∙ yieldTip! Dart 의 예약어
- 식별자가 될 수 없는 예약어
// 내용 : 한 줄 주석/* 내용 */ : /* 와 */ 사이의 모든 내용 주석# 예시
add(int a, int b) {
return a + b
}
main() {
// 한 줄만 주석
/*
여러 줄 주석
var numberA = 1;
var numberB = 2;
*/
var numberA = 10;
var numberB = 25;
num ∙ var ∙ dynamic 을 제외하면 대부분의 언어에서 사용하는 것과 유사Tip! Dart 의 내장 타입
# 예시
String lasName = 'Yang';
String firstNmae = "hwaya";
String 객체에 대한 참조를 가지는 것'' ( 작은 따옴표 ) 혹은 "" ( 큰 따옴표 ) 로 묶을 수 있음String 이라고 타입을 명시적으로 지정해주었음var 타입을 사용하여 타입을 지정하지 않을 수 있음var 타입 사용 시 초기값을 참고하여 해당 변수의 타입을 추론# 예시
var balance = 1000;
balance = "천"; // error
int 타입인 것으로 추론 가능int 타입으로 초기화된 balance 변수는 다른 타입을 값으로 가질 수 없음dynamic 타입을 사용하면 됨Object 를 사용할 수 있음# 예시
dynamic balanceA = 1000;
balanceA = "천";
Object balanceB = 1000;
balanceB = "천";
var 는 가독성이 떨어지고 실수를 유발할 가능성이 높기 때문에 초보자는 가급적 명시적으로 타입을 선언하는 것을 추천# 예시
main() {
var number;
dynamic balanceA = 1000;
Object balanceB = 2000;
print('The number is $number');
print('The balanceA is $balanceA');
print('The balanceB is $balanceB');
print('');
number = 10;
balanceA = "천";
balanceB = false;
print('The number is $number');
print('The balanceA is $balanceA');
print('The balanceB is $balanceB');
}
------------------------------------------------------------------------------------------
# 결과
The number is null
The balanceA is 1000
The balanceB is 2000
The number is 10
The balanceA is 천
The balanceB is false
num 은 int 와 double 의 상위 타입num 타입은 int 와 double 모두 참조 가능int 와 double 은 서로 참조할 수 없음double 에 int 가 할당되는데 다트에서는 안됨# 예시
num a = 10;
int b = 20;
double c = 1.2;
a = b;
a = c;
b = c; // error
c = b; // error
final ∙ const 2가지 타입이 존재# final 예시
final int PRICE = 1000; // 1000은 리터널
final Name = "Kim"; // 타입 생략 가능
PRICE = 2000; // error
# const 예시
const int PRICE = 1000;
const NAME = "Kim"; // 타입 생략 가능
PRICE = 2000; // error
final 과 const 의 차이점const 는 컴파일 시점에 상수가 됨final 은 런터임에 상수화되기 때문에 실행 시 아래와 같이 get() 함수에서 가져온 값으로 설정이 가능const 는 이미 컴파일 시점에 상수화 되었기 때문에 런타임 시 get() 함수에서 가져온 값을 넣으려고 하면 에러 발생# 예시
get() {
return 100;
}
main() {
final int NUMBER = get();
// const int PRICE = get();
final NAME = "Kim";
const COLOR = "Red";
print("The NUMBER is $NUMBER");
// print("The PRICE is $PRICE");
print("The NAME is $NAME");
print("The COLOR is $COLOR");
}
------------------------------------------------------------------------------------------
# 결과
The NUMBER is 100
The NAME is Kim
The COLOR is Red