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;
}
이런 자바스크립트 코드와 같은 기능을 수행한다.