다트 언어는 var 키워드를 사용하여 변수를 선언하고 값을 할당할 수 있다. 값이 할당되는 순간 자료형인 데이터타입이 정해진다. 이것은 명시적으로 변수의 자료형을 지정하는 것과 같다. var 로 선언한 변수의 자료형을 정확히 알고 싶다면 runtimeType 메서드를 사용하여 확인해 볼 수 있다.
다트 언어 var 변수 사용과 자료형 보기
dart variables and data type
다트 언어에서 변수 선언시 var 를 사용할 수 있다.
var는 변수의 자료형인 데이터타입 ( data type ) 을 명시적으로 선언하지 않고도 초기에 설정되는 값으로 자료형이 결정된다.
다만 var 로 선언된 변수의 자료형은 한번 정해지면 변경할 수 없다.
명시적으로 변수를 선언해서 사용해도 되지만, var 를 사용하는 것이 조금 편하다.
불편한 점이 있다면 출력과 연산시 자료형인 데이터타입을 중간중간 확인해 볼 필요가 있다는 것이다.
var 변수와 자료형
var 변수를 사용하면 타입세이프 ( type safe ) 형태로 값을 할당하여 사용할 수 있다.
할당된느 값에 따라 변수의 자료형이 정해지기 때문에 고민할 필요는 없지만, 한 번 정해진 변수의 자료형은 변경할 수 없다.
이것은 명시적으로 선언하는 String 또는 Int 와 같은 것과 같다.
var 로 선언된 변수의 자료형이 궁금할 경우 출력문을 통해 확인해 볼 수 있는데 이 때 사용하는 메서드는 runtimeType이다.
아래는 var를 사용한 변수의 선언과 runtimeType 을 사용한 변수의 자료형을 확인해 보는 내용이다.
var 변수 = 값 할당
변수.runtimeType
샘플코드
var 를 사용하여 변수를 선언하고 값을 할당해 보는 다트 언어 예제를 만들어 본다.
값을 할당한 후 변수에 들어있는 값과 자료형인 데이터타입이 구체적으로 어떻게 되어 있는지 runtimeType 메서드로 직접 확인까지 해 보도록 한다.
물론, 디버그를 통해 확인해 볼 수 있지만 메서드 하나 눈으로 익혀둔다 생각하자.
// var 변수 선언과 자료형 찾기
// 코드의 실행은 단축키 F5 이다.
void main() {
// 변수 선언 및 할당
var vVar1 = 10;
var vVar2 = "다트 언어";
var vVar3 = true;
var vVar4 = 10.10;
var vVar5 = [
'Car',
'Boat',
'Plane',
];
var vVar6;
// 출력
print('$vVar1 ${vVar1.runtimeType}');
print('$vVar2 ${vVar2.runtimeType}');
print('$vVar3 ${vVar3.runtimeType}');
print('$vVar4 ${vVar4.runtimeType}');
print('$vVar5 ${vVar5.runtimeType}');
print('$vVar6 ${vVar6.runtimeType}');
}
코드르 보면 var 를 사용하여 변수를 5개정도 선언하고 각기 다른 형태로 값을 할당하였다.
var는 다트 언어에서 type safe 이기 때문에 최초 설정된 값으로 자료형이 정해진다.
이렇게 정해진 변수의 자료형을 눈으로 직접 확인해 보기 위해 runtimeType 메서드를 사용하여 출력해 볼 수 있다.
결과 화면을 보자.
var 로 선언하고 할당한 값과 함께 자료형이 잘 출력되고 있다.
다만, 값을 할당하지 않은 null 인 경우 object 가 아닌 값과 자료형은 null 로 표시된다.
'programming > Dart Flutter' 카테고리의 다른 글
다트 언어 반복문 for dart for loop statement (0) | 2022.07.15 |
---|---|
다트 언어 조건문 if else 사용하기 참이면 if 구문 거짓이면 else 구문 (0) | 2022.07.13 |
다트 언어 문자열 표현식 사용 Dart String ${expression} (0) | 2022.07.11 |
다트 언어의 시작 main() 함수 프로그램의 시작부 (0) | 2022.07.08 |
플러터 프로젝트 생성 에러 수정하기 Unable to pub upgrade flutter tool (0) | 2022.07.07 |
댓글