[Dart] Dart 시작하기 - Variables

·2025년 11월 1일

Dart/Flutter

목록 보기
1/2

수정 가능한 변수 - var

  1. var 변수
void main(){
	var name = '쩡';
}
  • 함수나 메소드 내부에 지역 변수 선언 시 사용
  1. 명시적으로 변수 타입 지정
void main(){
	String name = '쩡';
}
  • 클래스에서 변수나 프로퍼티 선언 시 사용

Dynamic Type

dynamic : 여러가지 타입을 가질 수 있는 변수에 사용되는 키워드 (자주 사용하는 것을 추천하지 않음)

void main() {
  var name; // == dynamic name;
  name = '쩡';
  name = 1;
  name = true;
}

  • 변수 타입을 알기 어려울 경우 주로 사용
  • flutter, json 사용 시 dynamic 타입 사용
    -> 변수 타입이 지정되지 않아 사용할 수 있는 함수가 많지 않음
void main() {
  dynamic name;
  if(name is String){
    name.
  }
}

Nullable (null safety)

기본적으로 모든 변수는 non-nullable임
null safety : 개발자가 null 값을 참조할 수 없도록 하는 것

void main() {
  String? nico = 'nico';
  nico = null;
  //   if (nico != null) {
  //     nico.isNotEmpty; // 컴파일러가 null이 아님을 알기 때문에 에러가 나지 않음
  //   }
  nico?.isNotEmpty;
}
  • 변수 타입에 '?'를 붙이게 되면 해당 변수가 지정한 변수 타입 또는 null이 될 수 있다고 명시하는 것 (A or null)
void main() {
  String? nico = 'nico';
  nico = null;
  nico.length;
}

수정 불가능한 변수 - final(==js의 const)

void main() {
  final (String) name = '쩡';
  name = 'hello';
}

  • 타입 지정은 선택

late 수식어

late : final이나 var 앞에 붙여줄 수 있는 수식어로, 초기 데이터 없이 변수를 선언할 수 있도록 해줌

void main() {
  late final name;
  // API 요청으로 데이터 받아옴
  name = 'data';
}

flutter에서 data fetching 할 때 유용

const

const : compile-time constant를 만들어줌, 수정 불가능한 상수(final과 똑같이 작동), 컴파일 시간에 값이 있어야함
compitle-time constant : 컴파일 시간에 초기화 값을 확인할 수 있는 상수

void main() {
  //   const API = '1123344'; // 하드코딩 됨
  const API =
      fetchApi(); // 컴파일러는 api의 변수 값을 모르기 때문에 compile-time constant가 아님 -> final API = fetchApi();로 작성
}

final: 값을 재할당하지 못하는 변수를 만듦
dynamic type: 어떤 타입의 데이터가 들어올 지 모를 때 사용함
const: 컴파일 할 때 값을 알고 있는 변수
final: 런타임 중에 만들어질 수 있는 변수
late: final, var, String같은 것들 앞에 써줄 수 있는 수식어로서 어떤 데이터가 올 지 모를 때 사용한다.

0개의 댓글