Dart - 2. variables

guddls ju·2023년 5월 19일
0

flutter 공부

목록 보기
1/5

3. var

How to make 변수 in flutter

1. 키워드 사용

관습적으로 함수나 메소드 내부에 지역 변수를 선언할 때 주로 쓰는 방법

var를 예시로 들면 var 라는 키워드를 쓰고, 변수의 이름을 적고, 그 안에 저장하고 싶은 데이터를 적으면 된다.

void main () {
  var [변수이름] = [데이터 값];
  var name = 'minsu';
  name = 'sumin';
 }
  • 변수의 타입을 구체화할 필요가 없었다. (Dart 컴파일러는 name이 string이라는 것을 안다) => 타입 추측
  • 변수에 값을 재할당 할 때 당연하게도 타입을 유지해야한다.

2. 명시적 변수 타입 지정

class에서 변수나 property를 선언할 때 사용

void main () {
  String name = 'minsu';
  name = 'sumin';
 }
  • Dart는 기본적으로 var를 사용해 변수를 선언하는 방식을 더 권장한다.
  • 타입을 사용하는 방식은 class의 property를 작성할 때 사용하는 게 권장된다.
  • 메소드나 작은 함수 안에서 지역 변수를 선언할 떄는 var를 사용하는게 더 좋다.(컴파일러가 타입을 구체화함)

var

  • 수정될 수 있다. (물론 타입을 지켜야 한다 ex) int → int)

4. Dynamic Type

dynamic : 여러가지 타입을 가질 수 있는 변수에 쓰는 키워드

  • 사용을 추천하진 않지만 때때로 유용하다. 정말 필요할때만 쓰자!

5. nullable

null safety : 개발자가 null 값을 참조할 수 없도록 하는 것

  • 코드에서 null값을 참조하면 런타임 에러가 뜬다. 이상적으로 컴파일 전에 잡아내는것이 좋다.
  • dart에서는 어떤 변수가 null이 될 수 있음을 정확히 표시해야한다.
  • 기본적으로 모든 변수는 non-nullable이다. 어떤 변수를 nullable로 만들고 싶으면 ?(물음표)를 붙여주면 된다.

사용 방법은 ?(물음표)를 붙이는 것이다.

예시)

void main () {
  //name이 String일 수도, null일 수도 있다.
  String**?** name = ‘munsu’;
  name = null;
 }

6. final

final : 수정이 불가능한 변수 ( like const in JS )

void main () {
  // 데이터 타입을 입력해줄 수 도 있다 (필수x)
  final String name = 'minsu';
  ~~name = 'lico';~~
 }

7. late

  • final이나 var 앞에 붙여 줄 수 있는 수식어
  • late는 초기 데이터 없이 변수를 선언할 수 있게 해준다. = 변수를 만드는게 데이터가 없다.
  • late를 사용하면 변수를 사용하기 전에 값을 넣게 만들어준다.
void main () {
  late final String name;
  ~~print(name)~~ // 아직 데이터가 없기때문에 오류
  // do sometinng, go to api 
  name = data.name;
 }
  • late를 사용하면 변수를 먼저 만들고, 나중에 데이터를 넣는게 가능하다.
  • 값을 넣기 전에 접근하지 않게 실수를 막아준다.
  • flutter로 data fetching을 할 때 유용하다.

8. constant

  • js의 const와는 다르다. (JS의 const는 dart에서는 final이 더 비슷하다)
  • dart 의 const는 comple-time constant를 만들어 준다.
  • comple-time constant : 수정될 수 없는 상수 + compile-time에 알고 있는 값이어야 함
profile
효율에 미친자

0개의 댓글