Foggy day

[Dart] 변수(variable)와 상수(constant) 본문

Flutter/Dart 문법

[Dart] 변수(variable)와 상수(constant)

jinhan38 2023. 3. 2. 11:29

 

Dart의 변수(Variable)

변수란 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미합니다.

즉, 변수란 데이터를 저장할 수 있는 메모리 공간을 의미하며, 이렇게 저장된 값은 변경될 수 있습니다

 

- String : 문자열
- int : 정수
- double : 실수(소수점)
- bool : 참(true) 또는 거짓(false)

 

 

1. 변수 선언

변수를 선언하기 위해서는 = 기호를 사용해야 합니다. 변수의 타입을 선언하고, 변수의 이름을 적어준 후에 =  기호로 값을 할당합니다. 

int age = 30;
String name = "홍길동";
double weight = 70.5;
bool b = true;

위와 같이 하면

age라는 int 타입의 변수에 30이라는 값이,

name이라는 String 타입의 변수에 홍길동 이라는 값이,

weight라는 double 타입의 변수에 70.5라는 값이,

b라는 bool 타입의 변수에 true라는 값이 할당 된 것입니다.

 

이렇게 선언된 값들을 변경할 수도 있습니다. 변경할 때는 변수명과 = 기호를 사용하면 됩니다.

age = 35;
name = "안녕하세요. 홍길동입니다.";
weight = 80.5;
b = false;

 

 

 

2. var, dynamic 타입

Dart에서는 타입을 추론할 수 있는 타입이 var와 dynamic 타입이 있습니다.

var a = 10;
dynamic b = "홍길동";

var 타입의 a 변수에 10이라는 값을 할당했고, dynamic타입의 b 라는 값에 홍길동이라는 값을 할당했습니다.

이때 a에는 10이라는 int 타입을 할당했기 때문에 프로그램에서는 var를 int타입이라고 인식합니다. 

b 또한 홍길동이라는 String 타입을 할당했기 때문에 프로그램에서는 String으로 인식할 수 있습니다. 

 

하지만 var와 dynamic의 타이점도 있습니다. 

var a = 10;
a = 20; // 정상
a = "안녕하세요"; // 에러 발생

dynamic b = "홍길동";
b = 50; // 정상

var는 한번 선언하면 최초에 선언된 변수 타입과 같은 타입만 다시 할당할 수 있습니다.

반면 dynamic은 최초 선언한 변수 타입과 다른 타입도 할당할 수 있습니다. 

var타입의 a는 최초에 int타입은 10을 할당했기 때문에 20이라는 값을 할당할 때는 정상적으로 처리되지만 안녕하세요라는 String 타입의 문자열을 입력하면 에러가 발생합니다.

dynamic 타입의 b에는 최초에 홍길동이라는 String 타입의 문자열을 선언했지만 50이라는 int 타입을 할당해도 에러가 발생하지 않습니다. 

 

 

 

3. final, const 

다트에서는 한번 선언한 변수를 변경 불가능하게 하는 키워드가 있습니다. final과 const 키워드입니다. final과 const 키워드는 타입의 앞에 선언해주면 됩니다. 두 키워드를 사용해주는 이유는 특정 변수들을 고유한 값으로 사용하고 싶거나, 변경되지 않는다는 것을 명확히 해주기 위해서입니다. 

final int age = 30;
const String name = "홍길동";

 

 

'Flutter > Dart 문법' 카테고리의 다른 글

[Dart] 함수  (0) 2023.03.02
[Dart] 반복문(for문)  (0) 2023.03.02
[Dart] Collection - List, Map, Set  (0) 2023.03.02
[Dart] 조건문(conditional)  (0) 2023.03.02
[Dart] 연산자, 형변환  (0) 2023.03.02