숫자 타입은 2가지가 있다. int 와 double
int a = 1;
double b = 2.2;
print(a*b); // 2.2
int는 정수 double은 소수
es6와 유사하다.
var a = '1${a}입니다.'
위와 같은 문법이 허용된다.
그리고 multiline은 " 혹은 ' 세번을 쓰면된다.
var a = """안녕하십니까?
저는 peter이고
프로그래머입니다."""
문자열 앞에 r을 붙이면 raw string이 된다.
var a = '1234\n' // 1234
var a = r'1234\n' // 1234\n
문자와 숫자 사이에 형변환의 예제는 다음과 같다.
int a = 3;
String b = a.toString(); //숫자 -> 문자
int.parse(b); 문자 -> 숫자
bool은 true or false;
자바스크립트의 배열과 유사하다.
자바스크립트와 같이 spread 문법이 된다.
var a = [1,2,3]
var b = [0,...a] //[0,1,2,3];
독특한 문법이 더 지원되는데, ...?이다.
List a;
var b = [1,2 ...?a] //[1,2]
?뒤에 null이면 붙이지 않는다.
List안에서 if, for 구문도 사용가능하다.
var a = [1,2,if(false) 3]; //[1,2]
var b = [1,2,for(var i = 0; i<3; i++) i] //[0,1,2]
List와 유사하다. 하지만 Set은 unique한 원소를 갖는다.
또 정의 할 때 '['가 아닌 '{' 를 쓴다.
다음은 set의 정의 방법이다.
var names = <String>{}
var names = Set<String>();
Set<String> names;
var names = {} //이렇게 정의 할 경우 뒤에서 보게 될 Map으로 인식한다.
Set에서도 List와 같이 spread 문법, if, for 구문을 지원한다.
Map은 자바스크립트의 Object 타입과 유사하다.
var a = {'이름': '이현석', '나이': '30세'}
var b = {'이름': '황', for(var i =0;i<2;i++) '숫자$i':i}
print(a); //{'이름': '이현석', '나이': '30세'}
print(b);// {이름: 황, 숫자0: 0, 숫자1: 1}