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
- BFS
- Image Processing
- MDP
- Widget
- system hacking
- fastapi를 사용한 파이썬 웹 개발
- Kaggle
- pytorch
- FastAPI
- Got
- llm을 활용 단어장 앱 개발일지
- ML
- 파이토치 트랜스포머를 활용한 자연어 처리와 컴퓨터비전 심층학습
- Flutter
- MATLAB
- rao
- study book
- DART
- Computer Architecture
- ARM
- bloc
- 백준
- PCA
- C++
- 영상처리
- BAEKJOON
- BOF
- Dreamhack
- Stream
- Algorithm
Archives
- Today
- Total
Bull
[Dart] late String과 String? 의 차이 본문
late String
설명:
late 키워드는 변수를 선언할 때 초기화되지 않은 상태로 두지만, 나중에 반드시 초기화할 것이라는 것을 보장합니다. Dart 컴파일러는 이 변수가 사용되기 전에 초기화될 것이라고 가정합니다.
Null 허용성:
기본적으로 null을 허용하지 않습니다.
사용 예:
late String name;
void initializeName() {
name = "John Doe";
}
void printName() {
print(name); // 이 시점에서는 name이 반드시 초기화되어 있어야 함
}
String?
설명:
String?는 변수에 null 값을 가질 수 있는 선택형(nullable) 타입입니다. 변수를 선언할 때 초기화되지 않아도 되고, 이후에 null로 설정할 수 있습니다.
Null 허용성:
null을 허용합니다.
사용 예:
String? name;
void setName(String? newName) {
name = newName;
}
void printName() {
if (name != null) {
print(name);
} else {
print("Name is not set");
}
}
주요 차이점
초기화 보장
late String:
나중에 반드시 초기화해야 하며, 사용 전에 초기화되지 않은 상태로 접근하면 런타임 에러가 발생합니다.
String?:
초기화되지 않더라도 null 값을 가질 수 있으며, 사용할 때 null 체크를 해야 합니다.
Null 허용성:
late String: null을 허용하지 않습니다. 초기화되지 않은 상태로 접근하려 하면 에러가 발생합니다.
String?: null을 허용합니다. null 값을 가질 수 있습니다.
요약
late String은 변수의 초기화를 나중으로 미루지만, 반드시 초기화되어야 하는 경우 사용합니다.
String?은 변수에 null을 허용해야 하는 경우 사용합니다.
두 가지 방식 모두 변수의 초기화와 null 안전성을 관리하는 데 중요한 역할을 합니다. 사용 시나리오에 맞게 적절한 방식을 선택하면 됩니다.
'Computer Language > Dart' 카테고리의 다른 글
[Dart::Stream] listen method (0) | 2024.08.19 |
---|---|
[Dart] Mixin은 언제 사용하나요? (1) | 2024.07.23 |
[Dart] Extension Methods란? (0) | 2024.07.15 |
[Dart] Stream이란? (기본, before understanding Bloc Concept) (0) | 2024.07.11 |
[Dart] 다양한 for문 (0) | 2024.03.11 |