오늘은 플러터 기초다지기를 위한 Dart 언어를 파헤쳐보도록 하겠습니다. 지난 시간에는 변수를 선언하는 방법을 알려드렸고, 이번에는 변수의 자료형태를 지정하는 방식에 대해 적어보겠습니다.
문자열을 담을 수 있는 String
문자열 담을 수 있는 String은 말 그대로 지금 작성하고 있는 단어, 문장 등을 의미합니다. 쓸 수 있는 모든 글자를 담을 수 있다고 보시면 됩니다. 문자열 지정은 따옴표(" 또는 ')를 이용해서 지정할 수 있습니다.
String a = "작심삼일 개발일기"
print(a) // 콘솔에 작심삼일 개발일기 출력
정수를 담을 수 있는 int
int는 정수(1,2,3,-1,-2,-3 등 소수점 자리가 없는 숫자)를 담을 수 있습니다. 앞서 언급한 String도 숫자를 문자열 형태로 담을 수 있으나, String으로 지정하기 위해서는 따옴표로 숫자를 감싸야 하고, 가장 큰 차이점은 '계산을 할 수 있다'는 점 입니다. 아래 코드는 그 예시입니다
String a = "1";
String b = "2";
print(a+b); // 콘솔창에 12 출력
int c = 1;
int d = 2;
print(c+d); // 콘솔창에 3 출력
String 변수 두개를 더하면 문자열 두개가 합쳐진 형태로 출력이 되지만, int 변수 두 개를 더하면 두 숫자를 실제로 더한 값이 나오게 됩니다.
참 또는 거짓을 담을 수 있는 bool
bool은 boolean의 약자로 프로그램에서 참(true) 또는 거짓(false)를 의미합니다. 변수를 선언하고 특정 명제를 지정하면 그것이 참인지 거짓인지를 알려주는 기능을 가지고 있습니다
bool a = 1+1 == 2;
print(a) // true를 출력
bool b = 2+2 == 5;
print(b) // false를 출력
참고로 대부분의 프로그래밍 언어에서 등호(=)를 하나만 쓰는 건 왼쪽 변수에 오른쪽 값을 대입한다는 의미이며, 두 개를 쓰면 우리가 수학에서 사용하는 '같다'는 의미를 가집니다. 일부 프로그래밍 언어에서는 등호를 세 개를 써서 자료형까지 동일하다는 의미를 담기도 합니다.
배열을 담을 수 있는 List
여러개의 데이터를 묶어서 담을 수 있는 배열을 지정하는 List 입니다. 배열은 대괄호([]) 안에 데이터를 담는 구조이며, 한 개의 데이터는 쉼표(,)로 구분합니다. 또한 여러개의 데이터 중 한개를 지정하려면 변수명 옆에 대괄호와 숫자를 적어주면 됩니다. 첫번째 데이터는 [0]부터 시작합니다. 또한 꺽쇠(<>)로 배열에 들어갈 자료형태를 결정할 수 있습니다.
List a = [1,2,3,4,5]
print(a) // [1,2,3,4,5]
print(a[0]) // 1
List<String> b = [1,2,3]
print(b) // 오류 발생
Key:Value의 형태를 가진 자료의 집합 Map
중괄호({}) 안에 Key:Value 형태의 자료를 모아두는 변수의 자료형입니다. 특정 Key의 값을 확인하려면 변수명[Key]과 같은 형태로 출력하면 됩니다
Map a = {
name : "작심삼일 개발일기",
post : 7
}
print(a) // {name:작심삼일 개발일기, post:7} 출력
print(a['name']) // 작심삼일 개발일기 출력
a['url'] = "dev.thisiszeroblog.com"
print(a) // {name:작심삼일 개발일기, post:7, url:dev.thisiszeroblog.com} 출력
a.remove('name') // key가 'name'인 값을 제거
print(a) // {post:7, url:dev.thisiszeroblog.com} 출력
모든 변수를 담을 수 있지만 자료형을 바꿀 수 없는 var
지난번 포스팅에서 보여드렸던 var 입니다. var로 선언한 변수는 어떤 값이든 들어갈 수 있으나, 처음으로 선언할 때의 자료형이 고정되어 자료형이 다른 값으로 지정하면 오류가 발생합니다
var a = 1
print(a) // 1 출력
a = 2
print(a) // 2 출력
a = "3"
print(a) // 오류 발생
모든 변수를 담고 자료형도 바꿀 수 있는 dynamic
dynamic 변수는 var와 마찬가지로 모든 자료형의 값을 지정할 수 있으며, 다른 자료형의 값으로 변경도 가능합니다
dynamic a = 1
print(a) // 1 출력
a = "하하"
print(a) // 하하 출력