Dart 에서의 Const 와 Final
인터넷 자료로 이미 Const 와 Final의 차이는 널리 알려져 있다.
간단한 예시로..
const now = DateTime.now(); X
final now = DateTime.now(); O
윗줄은 컴파일 단계에서 값을 알 수 없으니 X
아랫줄은 그 이후의 과정이므로 O
라는 것이다.
그치만.. 린트를 사용한다면 Class에 const를 붙이라는 메시지를 확인할 수 있을것이다.
class Test extedns StatefulWidget{
....
}
Container(
child:const Test()
)
와 같은 코드를 볼 수 있을것이다.
클래스에는 왜 const 가 붙는걸까??
저 클래스에 내부에 일어나는일 모든것을 다 컴파일 단계에서 계산을 하는걸까?
const를 좀 더 파보니... const에 할당된 것은 메모리 주소가 바뀌면 안된다고 한다.
class의 메모리 주소는 고유하지만 내부의 값을 바뀌는?? 형태로 보여진다.
그래서 class에도 const가 붙을 수 있나보다.
한가지 궁금한거는 매개변수가 들어가는 생성자가있는? class는 const가 붙지 못한다.
저 부분에 대한 궁금증은 아직 풀리지 않았다..
좀더 알아봐야겠다.