Dart : Variables

Alvin Jung

·

2021. 1. 26. 22:04

Ⅰ. 변수

변수는 데이터를 담는 그릇이다.

각 변수 종류를 (데이터) 타입 또는 자료형이라고 부른다.

 

. 변수 선언과 초기화

타입 변수명 = 초깃값; (이것이 변수를 선언하고 초기화하는 기본 형태이다)

int number = 0; (int는 타입, number는 변수 이름, 0은 초깃값이다. 문장 끝에 세미콜론은 필수)

String name = 'Steve';

(String은 타입, name은 변수, Steve는 초깃값, String 타입은 홑 따옴표로 감싸준다. 물론 큰따옴표로 감싸도 상관은 없다)

 

. 다트에서 제공하는 기본 데이터 타입

데이터 타입 비고
int 정수
범위 : -263 ~ 263-1
double 실수
범위 : IEEE 754 표준을 따름
num int와 double의 상위 데이터 타입
bool true / false 를 값으로 가짐
string 문자열
(다트 스타일 가이드에서는 문자열에 홑 따옴표 권장함)
var 변수 할당시 타입 지정됨
타입 변경 불가
dynamic 타입을 특정하지 않음
즉, 타입 변경 가능
list 다트에 배열을 없음
배열(array)은 리스트(list)로 대체
[리스트]
set 순서가 없고 중복 없는 컬렉션
[집합]
map 키(key)와 값(value)의 형태를 가지는 컬렉션
[맵]

 

Ⅳ. 예제

void main(){
	// 정수형
	int age = 100;
	int favoriteNum = 6;

	// 실수형
	double height = 200.3;
	double weight = 121.82;

	// int와 double의 상위 타입
	num num1 = 12;
	num num2 = 1.43;

	// 논리형
	bool isGrounded = true;
	bool isJumping = false;

	// 문자형
	String firstName = 'Gildong';
	String lastName = 'Hong';

	// 동적 타입 : var
	var vAge = age; // int
	var vHeight = height; // double
	var vIsJumping = isJumping; // bool
	var vLastName = lastName; // String

	// 동적 타입 : dynamic
	dynamic dAge = age; // int
	dynamic dHeight = height; // double
	dynamic dIsJumping = isJumping; // bool
	dynamic dLastName = lastName; // String

	print('나이 : $age, 가장 좋아하는 숫자 : $favoriteNum, 키 : $height, 몸무게 : $weight');
	print('땅에 있습니까? : $isGrounded, 점프하는 상태입니까? : $isJumping');
	print('성 : $lastName, 이름 : $firstName' + ', Full Name : ' + lastName + firstName);
	print(num1 + num2); // 콘솔창에 12 + 1.43을 출력한다.
	print('var : $vAge, $vHeight, $vIsJumping, $vLastName');
	print('dynamic : $dAge, $dHeight, $dIsJumping, $dLastName');
}

* 다트의 들여 쓰기는 2칸이다. UI를 만들다 보면 들여 쓰기가 깊어지는데 이때 2칸이 4칸 보다 유리하기 때문이다.

void main() {
	String str1 = 'Hi';
	String str2 = 'Gildong';
	String str3 = str1 + ', ' + str2; // 문자열을 이렇게 서로 더해줄 수 있다.

	int length = str3.length; // str3의 길이를 담는 int 변수

	// 같은 결과물을 두 가지 방법으로 표현해봤다.
	print('str1 : ' + str1);
	print('str1 : $str1');
	print(''); // 이렇게 문장과 문장 사이를 한 칸 띄워줄 수 있다.

	// 같은 결과물을 두 가지 방법으로 표현해봤다.
	print('str2 : ' + str2);
	print('str2 : $str2');
	print('');
	
	// 같은 결과물을 두 가지 방법으로 표현해봤다.
	print('str3 Length : $length, str3 : ' + str3);
	print('str3 Length : ' + '$length' + ', str3 : ' + str3);
}
void main() {
	bool a = true;
	bool b = false;
	bool c = 4 < 8;
	bool d = 8 < 4;

	print(a);
	print(b);
	print(c);
	print(d);
}
void main() {
	int intN = 1;
	double doubleN = 23.23;
	num numN; // 아무 값도 할당 하지 않았다. 이 때를 null이라고 한다.

	print(intN);
	print(doubleN);
	print(numN); // null인 것을 직접 확인해봐라.

	numN = intN; // num은 int의 상위 타입이므로 num에 int 값을 할당할 수 있다.
	print(numN); 

	numN = doubleN; // num은 double의 상위 타입이기도 하므로 num에 double 값을 할당할 수 있다.
	print(numN);

	// 일부 언어에서는 더 큰 자료형인 double 타입에 int 타입을 대입하는 자동 형변환을 지원하기도 하지만 다트는 그런거 없다.
	// 아랫 문장은 에러 나서 주석 처리 해놨다.

	/* 
	* doubleN = intN;
	* print(doubleN);
	*/

	double a = intN + doubleN; // int + double = double
	print(a);
}

'Dart' 카테고리의 다른 글

Dart : Constant  (0) 2021.01.28
What Is Dart?  (0) 2021.01.26
Dart : Comments  (0) 2021.01.21
Dart : Statement  (0) 2021.01.21
닫기 아이콘
사이드 프로필 배경이미지
아바타 이미지

JDevlog

This Is JDevlog

Development Blog