Programming/Dart
Dart / Flutter 기본 문법 (변수)
나쵸캣
2023. 3. 1. 16:52
반응형
기본 변수
dart는 Type safe한 언어지만 타입 추론이 가능하여 명시적 타입을 지정하지 않아도 된다.
var year = '2023';
var friuts = ['apple', 'banana', 'cherry'];
print(year is String); // true
print(friuts is Object); // true
만약 타입이 예상되지 않는다고 명시적으로 표현할 때에는 dynamic 키워드를 사용한다. (Typescript의 any 같은 역할)
var year = '2023';
year = 100;
//Error: A value of type 'int' can't be assigned to a variable of type 'String'
dynamic year = '2023';
year = 100;
// Not Error
디폴트 값
nullable 타입을 가지는 변수는 초기값으로 null을 가질 수 있다.
하지만 non-nullable 변수를 사용한다면 무조건 초기화를 해야한다.
String? year;
print(year); // null
String year;
print(year);
// Error: Non-nullable variable 'year' must be assigned before it can be used.
Late 변수
dart 2.12에 late 수식어가 추가되었다. 두 가지 사용예시가 있다.
- 선언 이후에 초기화되는 non-nullable 변수를 선언하는 것
- 변수의 초기화를 지연하는 것
String year;
print(year);
// Error: Non-nullable variable 'year' must be assigned before it can be used.
late String year;
print(year)
// Error: Late variable 'year' without initializer is definitely unassigned.
late String year;
year = "2023";
print(year); // 2023
fianl, const
변수를 변경할 생각이 없다면 final, const를 지정한 타입에 추가하여 상수로 만들 수 있다.
final 변수는 오직 한 번만 설정 할 수 있다.
const 변수는 컴파일 타임 상수이다. (런타임과 컴파일타임이 있다.)
* 인스턴스 변수는 final로 설정될 수 있지만 const로 설정될 수는 없다.
final year = "2023";
final String month = "10";
print(year); // 2023
print(month); // 10
final year = "2023";
year = "2024";
// Error: Can't assign to the final variable 'year'.
const year = "2023";
year = "2024";
// Error: Can't assign to the final variable 'year'.
const 키워드는 상수 변수를 선언할 때 뿐아니라 상수 값을 만들 때에도 사용 가능하다.
var ntnn = "1999";
var year = [ntnn];
print(year); // [1999]
var ntnn = "1999";
var year = const [ntnn];
// Error: Not a constant expression.
var year = const [];
// 이전에 const 값을 가지고 있더라도 non-final, non-const 변수의 값을 변경할 수 있다.
year = ['2023'];
print(year); // [2023]
반응형