Dart 의 변수

좐쓰 ㅣ 2024. 3. 27. 21:42

반응형

1. var 변수

var name = '좐쓰';

이런식으로 변수를 선언 할 수  있다.

 

자바스크립트 ES5 에서 썼던 변수 형태와 비슷한데 

차이점이 있다면 

자바스크립트의 var 변수는 한 스코프 안에서 두번 선언을 허용하지만 dart는 허용하지 않는다

 

 

name1 변수는 이미 정의되었다고 뜸

 

2. 타입 변수

String , int 와 같이 타입을 미리 정의 할 수도 있고

 

var name = '해피';
var age = 2;

print(name.runtimeType);

 

이런 식으로 선언 시에 var 를 정의한 경우 runtimeType 으로 타입 확인이 가능하다.

 

3.  EL 문법

 

js 에서는 백틱으로 ${변수명} 을 감싸서 문자열에서 변수를 사용할 수 있게 하는데 dart에서는 그냥 따옴표에 넣어서 사용한다.

 

String name = '좐쓰';

print('이 블로그의 주인은 ${name} 입니다.')

 

또한 함수 없이 변수만 사용하는 경우에는 

 

이런 식으로 중괄호를 생각 가능해서 사용이 가능하다.

 

4. dynamic 변수

dynamic 변수는 아무 타입이나 집어 넣을 수 있고 다른 타입으로 재정의 하는 것이 가능하다.

그러나 var 변수는 한번 선언한 타입으로 고정이 된다....!

 

5. nullable / non-nullable

 

Java 와 달리 dart 는 정의된 변수에 null 을 집어 넣을 수 없다;;

 

하지만 널 집어 넣고 (?) 싶다면 !!

 

변수 타입 뒤에 ? 를 붙여주면 간단히 해결!!

그리고 null 이 허용된 변수에 이 변수가 null 이 아니라는 표시를 하고싶다면 

변수뒤에 ! 를 붙이면 된다.

 

6. final / const

 

재정의가 안되는 java, javascript 의 변수 선언과 같다...!!

그리고 어차피 선언하며 정의하기에 var 혹은 String 과 같은 타입을 생략할 수 있다.

final name = '아이브';
const member = '장원영';

 

차이점이 있다면 const 는 코드 작성시에 값을 알아야만 사용할 수 있고

final 은 빌드타임의 값을 몰라도 사용 가능하다.

 

아 그리고 코딩애플 쇼츠에서 봤던 문법인데

 

double? age = 4.0;

age = null;

age ??= 3.0;

 

이런식으로 ??= 연산자는 

if (age === null) {
	age = 3.0;
}

 

이런 자바스크립트 코드와 같은 기능을 수행한다.

반응형