VARIABLES

김성연·2023년 8월 29일
0

Flutter

목록 보기
48/51
void main(){                //main을 hello로 바꿔서 강제로 실행하면 오류가 날 것이다.
  print('hello world');  
}
  • main 함수는 모든 Dart 프로그램의 Entry point(진입점)
  • 세미콜론 반드시 붙여야 한다(js나 typescript는 프로그램이 자동으로 달아준다)

변수를 만드는 방법

  • var
    void main(){
      var name = '성연';  
      name = '일영'; 
    	name = 0; //X 불가능하다 -> 위에서 name을 문자열로 선언했기 때문에 
    														//같은 문자열로 바꿀 수 있어도 다른 type으로는 바꾸지 못한다
    
    }
  • 명시적 지정(예: String, int)
void main(){
  String name = '성연';
  name = '일영';
  print(name);
}
  • 언제 무엇을 써야할까?

var: 관습적으로 함수나 메소드 내부에 지역 변수를 선언할 때는 var 사용한다
String: class에서 변수나 property(속성)를 선언할 때에는 타입 지정한다(클래스는 다른 부분에서도 사용 가능하기 때문이다)

타입만 유지하면 변수는 업데이트 가능하다!!


Dynamic Type

void main(){
  var name;  //name은 dynamic 타입이다.
	dynamic name2; //가능
}
  • 해당 변수의 타입을 알 수 없을 때 주로 사용한다. (json 같은 경우)
    • 필요한 경우만 쓰자 !!! 다양한 타입을 가질 수 있다.

Null Safety

  • 개발자가 null 값을 참조할 수 없도록 하는 것이다.
  • 어떤 변수, 혹은 데이터가 null이 될 수 있다는 것을 명시한다.
  • Dart의 변수는 기본적으로 nullable이 아니다.
    void main(){
      String? name = "hi"; //형식 뒤에 ? 붙여준다
    	hi = null;		
    }

final

  • Final을 사용하면 변수 값을 수정할 수 없다(JS의 const와 같다) ****
void main(){
	final name = 'nico'; //name 수정 불가능
}
  • final String name = 'nico'; 선언 가능하지만 Dart는 형식을 자동으로 추론한다.

late

  • final이나 var앞(타입)에 붙일 수 있는 수식어
  • 초기 데이터 없이 변수를 선언 가능하다.
  • API 사용할 때 많이 사용한다.
void main(){
	late final name; 
	name = 'nico';
	print(name);
}

const

  • compile-time constant(컴파일 할 때 알고 있는 값에 사용한다)
  • 만약 어떤 값인지 모르고, 그 값이 API로부터 오거나 사용자가 화면에서 입력해야 하는 값이라면 final, var가 온다
void main() {
const name = "tom"; // 컴파일 시점에 바뀌지 않는 값
final username=fetchAPI(); // 컴파일 시점에 바뀌는 값
}

0개의 댓글