Flutter

Flutter에서 const, final, late의 차이

코샵 2023. 5. 25. 12:06
반응형

소개

Flutter에서 변수를 선언할 때 const, final, late 등의 키워드를 사용할 수 있습니다. 이번 글에서는 이 세 가지 키워드의 차이점에 대해 자세히 알아보겠습니다.

const

const는 변수를 선언할 때 사용되며, 한 번 값이 할당되면 변경될 수 없습니다. 이는 컴파일 타임에 값이 결정되므로, 런타임 시에는 더 이상 변경되지 않습니다.

const value = 10;

위의 코드에서 value 변수는 컴파일 타임에 10으로 결정되므로, 런타임 시에는 더 이상 변경될 수 없습니다.

final

final은 변수를 선언할 때 사용되며, 값이 한 번 할당되면 변경될 수 없습니다. 그러나 const와 달리 런타임 시에 값이 결정됩니다.

final now = DateTime.now();

위의 코드에서 now 변수는 런타임 시에 현재 시간으로 결정됩니다. 그러나 한 번 결정된 이후에는 더 이상 변경될 수 없습니다.

late

late는 변수를 선언할 때 사용되며, 선언 이후에 나중에 값을 할당할 수 있습니다. 그러나 변수를 사용하기 전에 값을 할당하지 않으면, 런타임 시에 예외가 발생합니다.

late String name;

위의 코드에서 name 변수는 선언 이후에 나중에 값을 할당할 수 있습니다. 그러나 변수를 사용하기 전에 값을 할당하지 않으면, 런타임 시에 예외가 발생합니다.

차이점

const와 final은 값이 할당된 이후에는 변경될 수 없으며, const는 컴파일 타임에 값이 결정되고, final은 런타임 시에 값이 결정됩니다. 반면에 late는 변수를 선언한 이후에 값을 할당할 수 있지만, 변수를 사용하기 전에 값이 할당되지 않으면 예외가 발생합니다.

이를 DateTime.now()로 설명하면, const로는 현재 시간을 할당할 수 없습니다. final로는 할당할 수 있지만, 그 이후에 더 이상 변경할 수 없습니다. late로는 선언 이후에 나중에 값을 할당할 수 있지만, 변수를 사용하기 전에 값을 할당하지 않으면 예외가 발생합니다.

이렇게 Flutter에서 const, final, late의 차이점에 대해 알아보았습니다. 적절한 상황에 맞게 사용하여 변수를 선언하면, 코드의 가독성과 유지보수성을 높일 수 있습니다.