Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 230508
- DFS
- Adapter
- 프래그먼트
- null-safety
- classList
- html
- 230503
- Flutter
- ViewPager
- C++
- querySelector
- javascript
- 230510
- string
- Class
- 부가데이터
- intent
- 데이터 타입
- ActionBar
- fragment
- 인텐트
- DOMContentLoaded
- parcelable
- 생명주기
- 안드로이드
- 함수 인자
- textContent
- putextra
- serializable
Archives
- Today
- Total
나만의 개발노트
[Dart] Variables(변수) 본문
1. 변수 선언
void main(){
var str1 = 'abc'; //방법1
String str2 = '가나다'; //방법2
str1 = 'def';
}
[방법1]
: var 키워드를 사용해서 선언
- 변수는 업데이트 될 수 있고, 초기 선언한 타입과 일치해야 함 (여기서는 String)
- 함수나 메소드 내부에 지역변수를 선언할 때 사용
[방법2]
: 변수의 타입을 명시적으로 선언
- 변수는 업데이트 될 수 있음
- 클래스에서 변수나 속성을 선언할 때에 사용
2. Dynamic 타입
void main(){
dynamic variable1;
var variable2;
}
: 여러가지 타입을 가질 수 있는 변수
- 변수의 타입을 알 수 없을 때 주로 사용
- 변수를 선언할 때 dynamic 키워드를 사용하거나, 값을 지정하지 않으면 dynamic 타입이 됨.
- 최대한 사용 지양(위험 방지)
3. Null Safety
: 개발자가 null값을 참조할 수 없게 하는 것
=>? 키워드 사용
[ ?를 선언 시 사용]: null이 될 수 있음을 표시
void main(){
//case1 : 정상
String str1 = 'abc'; //String만 가능
//case2 : 컴파일 오류
String str2 = 'bcd';
str2 = null; //컴파일 오류
//case3 : 정상
String? str3 = 'cde'; //'?'키워드 -> String과 null이 가능
str3 = null; //정상
- dart언어에서 기본적으로 변수는 모두 nullable하지 않음 => null값을 가능하게 하려면 '?' 키워드 사용 필요
[?를 조건문으로 사용]
: null이 아니라면, 이라는 조건문
void main(){
String? str = 'abc';
...
//방법1 : if문 사용
if(str != null) str.isEmpty;
//방법2 : ? 키워드 사용
str?.isEmpty; //str이 null이 아닐 때 라는 뜻
*참고 : isEmpty속성은 String 타입만 사용 가능(null에서는 컴파일 에러)
4. Final 변수
: 수정할 수 없는 변수를 만들 때, 'final'키워드 사용
void main(){
//수정 가능
var variable1 = 'abc';
variable1 = 'bcd';
//수정 불가
final variable2 = 'abc';
variable2 = 'bcd'; //컴파일 에러
}
- var -> final 키워드로 변경하면 됨
- 타입을 명시적으로 표시해도 됨 (보통 안하는게 가독성 좋음) //final String variable2 = 'abc';
5. Late 변수
: 선언과 초기화를 분리시키는 수식어
void main(){
late final str;
...
//지정할 코드를 받은 후
str = 'abc';
}
- 할당 값을 나중에 지정해야할 때, var이나 final 앞에 작성 ex) 정보를 API에서 받아와야 할 때
- 값을 넣기 전까지 해당 데이터의 접근을 막아 null safety 해준다
ex)
void main(){
late final str;
print(str); //컴파일 에러
}
6. constant 변수
: compile-time에 초기화 되는 변수
void main(){
const str1 = 'abc'; //컴파일 시점에 정해지는 값
final str2 = fetchAPI(); //컴파일 할 때, 정해지지 않은 값 = 실행 시 결정되는 값
}
- final 과 동일하게 한번 설정 후, 수정 불가
- API, 사용자 입력값 등 컴파일 시점에 정해지지 않는 값을 선언할 때 사용
- 자바스크립트의 const와는 다름 //자바스크립트의 const = Dart의 final
'[Flutter] > [Dart]' 카테고리의 다른 글
[Dart] class2 - Cascade Notation / Enums (0) | 2024.07.16 |
---|---|
[Dart] Class 1 - Class / Constructor / Named Constructor (0) | 2024.07.15 |
[Dart] Functions (함수) (0) | 2024.07.13 |
[Dart] data type(데이터 타입) (0) | 2024.07.13 |