Dart 시작하기 1. 변수 (Variables)

2023. 2. 4. 12:44개발

 파이썬부터 시작한 나로서는 "void main() {}"구문이 꼭 있어야 코드를 실행할 수 있어야 한다는 점이 낯설었다.

굳이 파이썬에서 비슷한 구문을 찾으라면 "if __name__ == '__main__':"일 것이지만, 사실 파이썬에서는 이 구문 안써도 코드가 실행된다.

그리고 유의할 점은

  • 코드마다 ';'(세미콜론)을 안쓰면 에러 뜬다.
  • 주석을 쓰려면 Dart는 '//'를 쓰고, Python은 '#'을 쓴다.
# Dart
void main() {
	print('hello');
}

# Python
if __name__ == '__main__':
	print('hello')

 본격적으로 Dart로 변수를 선언해보자. 파이썬과 다르게 변수명만으로 선언되지 않는다. 자료형(type)을 앞에 선언해줘야 하는데, 그래서 문자열(String)으로 한번 할당되면 다른 자료형으로 바꿀 수 없다.

자료형을 선언해야 하는 데서 오는 문제가 하나 있는데, null값(none 또는 None)을 할당하지 못하는 것(default가 non-nullable)이다. 이 문제를 해결하기 위해서 자료형 뒤에 '?'(물음표)를 붙여 nullable variables로 선언할 수 있다.

파이썬처럼 아주 유연한 변수를 선언하는 방법도 있다. 그것은 바로 'dynamic'. 얘는 nullable하고, 모든 자료형을 커버할 수 있다.

# Dart
String name = 'henry';
int age = 33;
bool isMarried = true;

var city = 'Daegu'; // 관습적으로 local variable에 쓰인다.
// city = 053; // Error: String타입 변수를 int타입으로 변경하려 하면 에러!

String? nullables; // print(nullables)하면 null이 출력될 것.
dynamic what; // 파이썬스럽게 변수를 선언할 수 있다. (즉, 자료형도 바꿀 수 있다.)

# Python
name = 'henry'
age = 33
isMarried = True

city = 'Daegu'
city = 053 # print(city)하면 53이 출력될 것!

nullables = None
what = None

 파이썬에서는 그냥 제공하지 않는 변수 자료형이 있어서 아래와 같이 정리. ;^) 인상 깊었던 점은 const를 사용하면 API를 한번 호출해서 background에 두고 계속 쓸 수 있다는 점. 아마도 state같은 개념이 업데이트되어도 그대로 유지되는 변수로 추정된다. 앱 개발을 목표로 만들어져서 이런 유용한 기능이 있는 것 같다.

# Dart
final birthday = '0829';
// 할당된 값을 변경할 수 없는 변수. JS의 const와 동일하다고 한다.
// 할당되는 값이 자료형이기에 final String birthday 이렇게 쓰지 않아도 된다.

late final deathday;
// 아직 값이 할당되지 않았지만, 할당되면 변경할 수 없는 변수. 
// 할당 전에 print(deathday)하면, Error (에러)!

const secret_key = fetchAPI();
// 컴파일 단계의 상수. API_key 값과 같은 데이터를 저장할 때 쓴다.

 

하기 링크의 노마드코더 무료 강의로 공부한 내용입니다.

 

Dart 시작하기 – 노마드 코더 Nomad Coders

Flutter 앱 개발을 위한 Dart 배우기

nomadcoders.co

728x90
반응형