목차

개발 노트/Flutter

late 변수의 할당 여부 검사

천만일 2022. 6. 18. 15:48

Problem

외부로 요청을 보내 비동기로 받아오는 데이터가 상태값으로 필요한 경우에는 가장 쉽게 접할 수 있는 키워드가 late 입니다.

 

대체로 데이터를 기다리는 동안 사용자에게 빈 화면을 보여줄 수 없기에 응답으로 받아온 데이터가 올바르게 할당되었는지의 할당 여부를 통해 사용자에게 다른 화면을 보여주고자 합니다.

 

이 때 late 키워드를 사용하여 변수를 선언하게 되면, 해당 변수가 null인지 검사할 때 에러가 발생합니다.

 

이는 아직 late 키워드를 활용하여 선언한 변수가 초기화되지 않기 때문입니다.

 

이에 대한 답을 찾기 위해 dart 공식 문서에서 제공해주는 권장사항을 살펴보았습니다.

Solve

late 변수가 초기화 되었는지 아닌지를 판단할 필요가 있다면 late 변수를 사용을 지양해야한다는 dart 공식 문서의 의견입니다.

 

dart는 late 변수가 초기화 및 할당이 되었는지 아닌지를 알릴 방법이 없습니다.

알고자 한다면 바로 예외를 던질 것 입니다.

 

late 변수와 변수가 할당되었는지 감지하는 boolean 변수를 추가로 선언하여 관리하면 late 변수의 초기화 및 할당 여부를 감지할 수 있습니다.

하지만, dart는 내부적으로 late 변수의 상태를 초기화된 상태로 유지하기 때문에 이는 중복됩니다.

 

대신, 변수를 late가 아닌 nullable 변수로 선언하여 null 여부를 검사함으로써 명확하게 관리할 수 있습니다.

 

 

 

Effective Dart: Usage

Guidelines for using language features to write maintainable code.

dart.dev

'개발 노트 > Flutter' 카테고리의 다른 글

[기능] Firebase_messaging 연동 및 페이지 이동  (0) 2023.11.01