[Flutter/Dart] 입문 - 변수3 Final, Const

houndhollis·2023년 10월 30일
1

오늘은 const 와 final에 대해서 작성해 볼려고 합니다.
앞선 변수 1,2 탄 내용 정리가 있으니 level1 이나 앞전 게시글을 참고하시면 좋을듯 해요~

Final Const

보통 final 과 const 는 변수를 선언할때 코드 맨 앞에 사용한다.

final String name = '김무개';
name = '강무개';

-> error 

final 과 const 는 한번 선언한 뒤로 변수의 값을 변경할 수 없다.

  1. var 기능
    final 과 const 는 var 의 기능 까지 해줘서 타입도 생략이 가능하다
final name = '강무개';

그러면 혹시 두개의 차이를 알고 계신가요? 과연 final과 const 의 차이는 뭘까?

  1. final const 차이
    두개의 차이를 알기전에 dart 언어에는 DateTime 이라는 클래스가 존재한다. 바로 시간을 구하는 클래스 인데요 js에서는 new Date() 같은 느낌이다.
    두개를 선언해 보겠다.
final DateTime now1 = DateTime.now(); // ok
const DateTIme now2 = DateTime.now(); // error

여기서 const 로 선언한 now2는 에러가 발생한다, 이유는

const = 빌드타임
final = 런타임

빌드 타임은 작성하는 순간에 코드의 값을 알아야 합니다. 하지만 시간같은 경우 저 클래스가 언제 사용될지 작성하는 순간에는 알수가 없기 때문에 final에서는 에러가 발생하지 않지만 const로 선언했을 경우 에러가 나타나는 현상을 알수 있습니다.

  1. 조건절, 확인
int number = 1;
// number가 정말 int 인지 확인 하는 방법!

print(number is int); // true
print(number is! String); // true
// 이런 식으로 분기를 작성할수 있고 반대 되는 상황도 연출 할수가 있습니다.

&& = and
|| = or

우리는 프로그래밍 언어를 쓰다보면 꼭 보게되는 조건이다.

print(2 > 1 && 1 > 2); false
print(2 > 1 || 1 > 2); true

가운데 조건만 바꿧는데 bool 값이 다르게 출력되는 것을 볼수 있다
&& 같은 경우 둘다 참이여야 하고 || 같은 경우 하나만 참이면 된다.

이것으로 변수 부분 파트를 마무리 하겠다.

profile
한 줄 소개

0개의 댓글