일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- ping
- erp
- JavaScript
- js
- vscode
- 자바스크립트
- jquery
- 메일
- 포트
- python
- 더존ERP
- 핑테스트
- 정규표현식
- 정규식
- 문자열
- MSSQL
- 유효성
- MYSQL
- crontab
- 리눅스
- sp_who
- 목차만들기
- port
- php
- pingtest
- 이메일주소
- 트랜젝션
- 핑
- codeigniter
- sendmail
Archives
- Today
- Total
ioerror
Dart Day 02 본문
반응형
nullable 변수(널이 될수 있는 변수)의 여러 활용법과 유의사항
void main()
{
// Nullable 변수 선언 - 타입 뒤에 ? 를 붙임
String? nullableString; // null 가능
String nonNullString = "안녕"; // null 불가능
// null 체크
if (nullableString != null) {
print(nullableString.length); // null 아닐때만 접근 가능
}
// null-aware operator (?.) 사용
print(nullableString?.length); // null이면 null 반환, 아니면 length 반환
// null 병합 연산자 (??) 사용
String result = nullableString ?? "기본값"; // null이면 기본값 사용
// late 키워드로 나중에 초기화
late String lateString;
// lateString 사용전에 반드시 값 할당 필요
lateString = "나중에 할당";
// 강제 null 해제 (!) - 주의: null이면 런타임 에러 발생
String forcedString = nullableString!; // nullableString이 null이면 에러
print("Nullable 변수 예시 실행 완료");
// 타입 캐스팅 예시
// 1. as 연산자 - 명시적 타입 캐스팅
num number = 10;
int intNumber = number as int; // num을 int로 캐스팅
print('as 연산자: $intNumber');
// 2. is 연산자 - 타입 체크
if (number is int) {
print('number는 int 타입입니다.');
}
// 3. is! 연산자 - 타입이 아닌지 체크
if (number is! double) {
print('number는 double 타입이 아닙니다.');
}
// 4. 다운캐스팅 예시
Object someText = 'Hello';
if (someText is String) {
// 스마트 캐스트: someText를 String으로 자동 인식
print('문자열 길이: ${someText.length}');
}
// 5. 안전하지 않은 캐스팅 예시 (런타임 에러 가능)
try {
Object value = 42;
String text = value as String; // 실패: IntegerDivisionByZeroException
print(text);
} catch (e) {
print('캐스팅 실패: $e');
}
// 6. 제네릭 타입 캐스팅
List<Object> objects = [1, '문자열', true];
for (var item in objects) {
if (item is int) {
print('정수: ${item + 1}');
} else if (item is String) {
print('문자열: ${item.toUpperCase()}');
} else if (item is bool) {
print('불리언: ${!item}');
}
}
}
반응형
'Flutter & Dart' 카테고리의 다른 글
Dart Day 04 (0) | 2025.02.25 |
---|---|
Dart Day 03 (0) | 2025.02.24 |
Dart Day 01 (0) | 2025.02.22 |
Comments