본문 바로가기

Flutter/Dart

(6)
const const상수지만 컴파일 되기 전 사용할 상수final과 const 차이점 !final: 컴파일 후 앱이 실행 될 때 도 사용 가능const: 컴파일 후 안되고 컴파일 되기 전에만 사용 가능 예시)final void main(){ late final var name; // 만약 사용자가 입력한게 상수가 되어야 하는 경우 // 사용자로 부터 입력 받았다고 가정 name = "정상수";} constvoid main(){ const String name = "관리자"; // 컴파일 되기 전 부터 상수로 선언 // final과 차이점은 컴파일 전, 후 라고 생각하면 됨}
late late초기 데이터 없이 변수를 선언할 수 있게 해준다. 예시)void main() { late var city; late int num; late final String name; } 데이터 없이 사용하려면 오류가 발생한다.
final final상수 예시)void main(){ final name = 'Dart'; name = "traD"; // 상수 변경 안됨} final과 const 차이점 !final: 컴파일 후 앱이 실행 될 때 도 사용 가능const: 컴파일 후 안되고 컴파일 되기 전에만 사용 가능 예시)final void main(){ late final var name; // 만약 사용자가 입력한게 상수가 되어야 하는 경우 // 사용자로 부터 입력 받았다고 가정 name = "정상수";} constvoid main(){ const String name = "관리자"; // 컴파일 되기 전 부터 상수로 선언 // final과 차이점은 컴..
null safety null safetynull 값을 참조할 수 없도록 하는 것 null 참조하게 되면 앱을 사용하는 사용자한테 런타임에러가 발생 !! 아주 치명적이다.컴파일러가 안잡아주니 코드 작성할 때 null이 될 수 있음을 명시 해줘야 함 예시)void main(){ String name = 'Dart'; name = null; // 에러 발생}void main(){ String? name = 'Dart'; // 타입 뒤에 ? 부착해 null safety name = null; // 에러 발생 안함} 참고로 모든 변수는 non-nullable 즉 null 될 수 없음을 의미함
dynamic dynamic 여러가지 타입을 가질 수 있는 변수에 쓰는 키워드var는 타입이 결정되면 변경이 불가능 하지만 dynamic 타입이 결정되는게 아닌 변수 값에 따라 계속 바뀔 수 있다. 예시)voim main(){ var name1; // dynamic 타입으로 사용 dynamic name2; // dynamic 타입으로 사용 (명시하는걸 권장) name1 = "다트"; name1 = 1; // dynamic 타입이기 때문에 문자열 -> 정수형 가능 name2 = 2; name2 = "연습"; // dynamic 타입이기 때문에 정수형 -> 문자열 가능 } var 타입에 변수명을 할당안하면 dynamic 타입으로 사용 가능 하지만 dynamic 타입인걸 명시해서 사용하는걸 권장! ..
var varDart에서 타입을 정확히 명시할 필요는 없다.var 타입에 변수 명을 할당하면 추론을 통해 컴파일 과정에서 타입이 결정된다. 예시)void main(){ var name = 'Dart'; // => 문자열 name = 'Dart1'; // => 가능 name = 1; // => 안됨} 단! 변수 명을 이미 할당한 경우 다른 타입으로 변경이 불가능 하다.var 선언 위치Dart에서는 var를 메소드 내부에 지역 변수를 선언할 때 var 사용을 권장클래스에서 전역변수나 property를 선언할 때에는 타입을 지정해서 명시하는걸 권장