# 예시
int a; // 식별자는 a
void foo(); // 식별자는 foo
Tip! Dart 의 내장 식별자
Tip! Dart 의 문맥 키워드
async
∙ async*
∙ sync*
로 표시된 ( 비동기∙동기 ) 함수의 바디에서는 식별자로 사용 불가await
∙ yield
Tip! 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