앞으로 flutter로 앱 개발을 하기 위해 필요한 Dart 언어를 공부해 볼 것이다. 먼저 var 와 dynamic 키워드를 사용하여 변수를 선언할 때 어떤 차이점과 기능이 있는지 알아보자
Var
var 키워드는 타입을 지정하지 않고 Dart 가 타입을 추론할 수 있도록 변수를 생성하는 것이다. dart 스타일 가이드에 따르면 var를 가능한 한 많이 사용하는 것을 권장하고 있다.
void main() {
// < var keyword >
var name = '멍멍'; // var 자리에 String 과 같이 타입을 직접 선언 가능
name = '슬슬'; // 선언한 변수는 값을 변수 선언 후에 바꿀 수 있음
}
위와 같이 var 키워드를 사용해서 타입 추론을 통해 변수를 사용해도 되지만 타입을 지정하고 싶을 경우에는 var 대신 String 과 같이 타입을 지정하여 변수를 선언해도 문제 없다.
하지만 타입을 지정해서 사용하는 방식은 class의 property를 작성할 때 사용하는 것을 권장하고 있다. (메소드나 작은 함수 안에서 지역 변수를 선언할 때는 var 키워드 사용 권장 => 컴파일러가 변수의 타입을 추론하기 때문)
위 코드에선 name 은 문자열로 타입 추론을 했기 때문에 이후에 name 이라는 변수에 정수형 숫자를 넣는 것은 불가능하다. 하지만 이를 가능하게 하는 방법이 있다.
Dynamic
그 방법은 바로 dynamic 키워드를 사용하여 변수를 선언하는 것이다. dynamic 키워드는 어떤 타입의 데이터가 들어올지 모르는 경우에 사용된다.
dynamic address; // 값을 주지 않고 선언만 한다면 'dynamic' 타입이 됨
address = '122';
address = 100;
address = true; // 변수의 값이 모든 타입을 사용할 수 있음.
if (address is String) {
// address 가 String 인 조건문 안에서는 address. 을 입력했을 때
// 문자열 처리 메소드가 뜨는 것을 확인할 수 있다.
}
if (address is int) {
// 마찬가지로 address 가 int 인 조건문 안에서 address. 을 입력하면
// 정수 처리 메소드가 뜨는 것을 확인할 수 있다.
}
만일 변수를 생성할 때 var address; 와 같이 값을 주지 않고 생성하게 된다면 자동으로 'dynamic' 타입이 된다. 또는 위 코드처럼 dynamic 키워드를 사용하여 dynamic 타입으로 변수를 생성할 수도 있다.
해당 키워드를 사용하게 되면 변수의 값이 모든 타입을 사용할 수 있다. 이렇게 보면 상당히 편해 보일 수도 있지만 개발자는 dynamic 타입으로 변수를 생성하는 것은 지양해야 한다고 한다.
오늘은 var 키워드와 dynamic 키워드에 대해서 알아보았다. 키워드가 제공하는 기능에 대한 이해를 바탕으로 코드를 작성해야 좋은 결과물을 만들 수 있다고 생각하기 때문에 사소해 보여도 하나씩 정리해 나가자!
'Dart' 카테고리의 다른 글
(Dart) QQ Operator 와 Typedef (0) | 2024.10.16 |
---|---|
(Dart) Named Parameters (0) | 2024.10.16 |
(Dart) Dart의 특징에 대해 알아보자 (0) | 2024.10.07 |
(Dart) final, late, const 키워드를 사용하여 변수 생성하기 (0) | 2024.10.06 |
(Dart) null safety 와 nullable 변수 (0) | 2024.10.06 |