본문 바로가기
App

[For Flutter] Dart 기본문법 #1 변수

by nothing-error 2023. 2. 12.

#Dart 가 설치되어 있지 않을 경우 https://dartpad.dev/ 에서 편하게 실행해볼 수 있습니다.

 

 

Hello World

모든 코드는 main 함수 안에 들어가야합니다.

void main() {
  print('Hello World!');
}

hello world 를 실행하는 방법은 파이썬과 동일하지만 마지막에 세미콜론(;)을 붙여줘야 한다는 점이 다릅니다.

 

변수

변수의 설정할 때에는 var 를 사용하거나 직접 변수의 타입을 지정할 수 있습니다. 이후에는 변수 수정시 동일한 타입으로 해야합니다.

void main() {
  var name = 'dahy';
  String name = 'dahy';
}

1. dynamic 

dynamic은 일반적으로 사용을 권장하지는 않으나 타입을 모를 때와 같이 특정한 상황에서 사용하기 유용합니다.

dynamic의 경우 아래 코드처럼 조건문을 통해서 타입을 확인하게 된다면 해당 타입의 변수로 사용할 수 있습니다.

(dynamic name => String name)

void main() {
  dynamic name;
  if (name is String){
    name.
  }
}

 

2. Null safety

null safety는 코드를 작성할 때 변수 혹은 데이터가 null이 될수도 있음을 명시하는것을 말합니다. 아래코드는 name 이 null 이기 때문에 에러가 발생합니다

void main() {
  String name = 'dahy';
    name = null;
}

null을 사용해야 하는 경우에는 아래와 같이 타입 뒤에 {?} 을 붙여주면 됩니다. 즉 name은 String이 될수도 있고 null이 될수도 있다라는 뜻입니다.

Q: 스트링?? 스트링이 맞아???

A : 일수도 있고 아닐수도 있어.

void main() {
  String? name = 'dahy';
    name = null;
}

 

void main() {
  String? name = 'dahy';
    if( name != null){
      print( name);
    }
}
------------------------------------
output:
dahy

3. final

변수를 변경하지 못하게 할 경우에는 아래와 같이 final 을 붙이면 됩니다.

void main() {
  final name = 'dahy';
}

 

4. late

late 는 final 이나 var 앞에 붙여줄 수 있으며 변수에 데이터가 없는 상태로 변수를 만들수 있습니다. 이러한 기능은 flutter에서 API와 작업할 때 매우 유용하게 사용할 수 있습니다. ex) api 요청한 값을 late 가 지정된 변수에 담을 때

void main() {
  late final String name;
}

 

5. const(compile-time constant)

const는 final 과 같이 변수를 변경할 수 없는 것은 동일하지만, const는 컴파일 할 때 알고 있는 값을 사용하는 것이 final과 다릅니다. 예를 들면 앱을 컴파일하고 앱스토어에 올릴 때 이미 api_key의 값을 알고 있다면 const를 사용하시면 되고, 만약 모른다. 사용자가 직접 키를 넣어야한다면 final을 사용하시면 됩니다.

void main() {
  const api_key= 'abc1234';
}

 


2023.02.12 - [App] - [For Flutter] Dart 기본문법 #1 변수

2023.02.13 - [App] - [For Flutter] Dart 기본문법 #2 자료구조

2023.02.13 - [App] - [For Flutter] Dart 기본문법 #3 함수

2023.02.13 - [App] - [For Flutter] Dart 기본문법 #4 Class

 

 

 

이 글은 '노마드코더'의 Flutter 앱 개발을 위한 Dart 배우기 강의를 바탕으로 작성됐습니다.

아래 링크를 통해서 무료로 수강할 수 있습니다.

 

https://nomadcoders.co/dart-for-beginners

 

 

댓글