다트 언어에서는 모든 변수가 객체입니다. 정수를 저장하는 int, 실수를 저장하는 double 등 모든 변수는 다트에서 객체입니다. int 타입 변수는 객체이므로 null을 대입할 수 있으며 int 클래스에 선언된 변수와 함수를 이용할 수 있습니다.
다음 코드에서는 int 타입의 no 변수를 선언했습니다. 타입이 int이므로 정수를 대입할 수 있습니다. 그런데 int는 dart:core라이브러리에서 제공하는 클래스이므로 결국 no 변수는 int 클래스의 객체입니다. 따라서 int 클래스에 선언된 isEven 속성을 사용할 수 있으며 다트의 최상위 클래스인 Object에 대입할 수 있습니다.
다트의 타입 클래스
대부분 프로그래밍 언어에서는 정수, 실수, 문자열, 불리언, 바이트 데이터 등을 저장할 수 있는 타입을 제공하는데, 다트에서는 dart:core와 dart:typed_data 라이브러리에서 클래스로 제공합니다. 숫자를 저장하는 num 클래스도 제공하며 int와 double 클래스는 num을 상속받습니다.
문자열 표현하기
다트에서 문자열 데이터를 다룰 때는 String 클래스를 사용하며 코드에서 문자열은 작은따옴표('hello')나 큰따옴표("
hello"), 또는 삼중 따옴표('''hello''', """hello""") 등으로 감싸야 합니다. 삼중 따옴표를 이용하면 문자열에서 엔터나 탭 등이 그대로 반영됩니다.
두 문자열이 같은지 비교할 때는 다음처럼 == 연산자를 이용합니다.
문자열에 동적인 결과를 포함하는 것을 문자열 템플릿이라고 하는데 이때 $ 기호를 이용합니다. 어떤 변수를 문자열에 포함하려면 $변수명 형태로 작성하고, 실행문의 결과를 포함할 때는 ${} 형태로 작성합니다.
형 변환하기
다트에서는 int, double 타입의 변수가 모두 객체이므로 형 변환도 자동으로 이뤄지지 않습니다. int, double 타입의 변수가 객체가 아니라면 int 데이터를 double 타입에 대입할 때 자동으로 형 변환이 이뤄져야 합니다. 하지만 다트에서는 int, double이 객체이며 두 클래스 사이에 상속 관계가 없으므로 자동으로 형 변환이 이뤄지지 않습니다.
int를 double 타입으로, 또는 double을 int 타입으로 변환하려면 다음처럼 함수를 이용해야합니다.
int n1 = 10;
double d1 = 10.0;
double d2 = n1.toDouble();
int n2 = d1.toInt();
프로그램을 작성하다 보면 int와 String의 형 변환을 자주 이용합니다. 이때에도 함수를 이용합니다.
int n1 = 10;
String s1 = '10';
String s2 = n1.toString();
int n3 = int.parse(s1);
'Flutter' 카테고리의 다른 글
컬렉션 타입 - List, Set, Map (0) | 2024.11.11 |
---|---|
var와 dynamic 타입 (0) | 2024.11.11 |
상수 변수 - const, final (0) | 2024.11.11 |
다트 언어란? (1) | 2024.11.11 |
플러터 프로젝트 분석하기 (0) | 2024.11.11 |