본문 바로가기
PM 기술스터디

(Flutter Study) Dart 언어 - Variables

by Rocket Launch 2023. 6. 24.
반응형

컴퓨터 비전공자 Product Manager의 프로그래밍 공부

노마드 코더(Nomad Coders) 강의 필기 노트 입니다.

강의 정보: Dart 시작하기 (https://nomadcoders.co/dart-for-beginners)

Variables (변수)

The Var Keyword (변수)

Dart - Var Keyword

변수를 선언할때 Var를 사용하거나 넣어줄 데이터(ex: String)의 타입을 사용할 수도 있다.

var는 특정 데이터타입을 직접 정의하지 않아도 입력된 데이터를 기반으로 데이터 타입을 인식한다. 그리고 변수는 데이터 타입만 유지한다면 업데이트가 가능하다.

Dynamic Type

Dart - Dynamic Type

모든 타입의 변수를 다 가질 수 있는 변수 타입

어떤 타입일지 알 수 없을때 사용하는 것이 아니기 때문에, Dyanamic은 정말 필요할때만 사용하는게 좋다.

Nullable variables

Dart - Nullable variables, Null Safety

Dart에서는 어떤 변수가 null이 될 수 있음을 정확히 표시해야 한다.

null safety는 어떤 변수, 혹은 데이터가 null이 될 수 있음을 명시하는 것을 말한다. 이렇게 하면 어떤 데이터가 null일 때 참조하지 않도록 Dart언어가 도와줄 것이다.

모든 변수는 non nullable이지만, 변수에 ? 를 붙여주면 null safety가 되어 null이 될 수 있음을 Dart가 알 수 있다.

Final Variables

Dart - final variables

한 번 정의된 변수를 수정할 수 없게 만드려면 변수를 final로 바꿔주면 된다.

혹은 final Var 나 final String으로 더 구체적으로 해줄 수 있다. 다른 언어의 const 와 동일해진다.

Late Variables

Dart - Late Variables

late 는 dart의 재밌고 훌륭한 기능이다. late는 final이나 var 앞에 붙여줄 수 있는 수식어이다.

late는 초기 데이터 없이 변수를 선언할 수 있게 해준다.  

변수를 먼저 만들고 API를 호출한 뒤 받아서 데이터를 나중에 넣을 수 있게 해준다.

late final을 사용하면 한번만 사용할 수 있는 변수를 만들고 데이터는 잠시 후에 넣어주게 된다.

flutter 에서 API와 작업할때 많이 보게 될 것이다.

Constant Variables

Dart - Constant Variables

javascript나 typescript의 const는 dart의 final과 유사하다.

dart에서 const는 compile-time constant를 만들어준다.

const는 compile-time에 알고 있는 값이어야 한다. 예를들어 API 키가 있다고 해보자. 그걸 여기 const에 넣어주면 이건 절대 바뀌지 않을 거고 컴파일이 될 때 그 값을 알고 있을 거다. 이건 하드 코딩된거다. 코드 안에 있는 거고 복사 붙여넣기 된거다.

하지만 만약에 API요청 같은걸 한다고 생각해보자. 이건 compile-time constant가 아니다. 컴파일러는 API 변수 값을 모른다. 왜냐하면 이건 API에서 받아와야 하는 값이기 때문이다. 이땐 const가 아닌 final이어야 한다.

const는 컴파일 할 때 알고 있는 값에 사용하는 거다. 앱스토어에 앱을 올리기 전에 알고 있는 값이란 거다. 그게 const가 하는 일이다. 

어떤 값인지 모르고 그 값이 API로 부터 온다거나, User가 화면에서 입력해야 하는 값이라면 그것은 final이나 var가 되어야 할 것이다.

 

Recap (복습)

영상: https://nomadcoders.co/dart-for-beginners/lectures/4100https://nomadcoders.co/dart-for-beginners/lectures/4100

반응형

댓글