Menu
Coddy logo textTech

기본 Null 안전성

Coddy Dart 여정의 기초 섹션에 포함된 레슨 — 94개 중 14번째.

Null safety는 어떤 변수가 비어 있을 수 있는지(null)를 제어하여 예상치 못한 앱 충돌을 방지하는 데 도움이 됩니다.

기본적으로 변수는 값을 포함해야 합니다:

void main() {
  String name = 'Dart';
  print(name);  // 출력: Dart
  
  // This would cause problems:
  // name = null;  // Not allowed
}

타입 뒤에 ?를 추가하여 null 값을 허용하세요:

void main() {
  String? name = 'Dart';
  print(name);  // Outputs: Dart
  
  // Now we can assign null
  name = null;
  print(name);  // Outputs: null
}

어떤 타입의 nullable 변수도 선언할 수 있습니다:

void main() {
  int? age;  // 초기값 없음, null로 기본 설정
  double? price = 19.99;
  bool? isAvailable = true;
  
  print(age);         // 출력: null
  print(price);       // 출력: 19.99
  print(isAvailable); // 출력: true
  
  // 이 중 아무거나 null로 변경할 수 있습니다
  price = null;
  isAvailable = null;
}

 

Null safety는 코드가 작업에서 null 값을 사용하려고 할 때 발생하는 예상치 못한 충돌로부터 앱을 보호하는 데 도움이 됩니다.

challenge icon

챌린지

초급

? 연산자를 사용하여 기본 null safety를 보여주는 Dart 프로그램을 만드세요:

  1. username이라는 이름의 String 변수를 선언하고 null safety 연산자 ?를 사용하여 null로 설정하세요 (String?)
  2. userAge이라는 이름의 int 변수를 선언하고 null safety 연산자를 사용하여 null로 설정하세요
  3. 라벨과 함께 두 변수를 정확히 다음 형식으로 출력하세요:
Username: null
User age: null

그 다음:

  1. username 변수에 값 "DartLearner"를 할당하세요
  2. userAge 변수에 값 25를 할당하세요
  3. 이전과 정확히 같은 형식으로 두 변수를 다시 출력하세요

출력은 위에 표시된 정확한 형식을 맞춰야 합니다.

치트 시트

기본적으로 Dart 변수는 null이 될 수 없습니다. null 값을 허용하려면 타입 뒤에 ?를 추가하세요:

// Non-nullable (default)
String name = 'Dart';

// Nullable with ?
String? name = 'Dart';
name = null;  // Now allowed

임의의 타입의 nullable 변수를 선언할 수 있습니다:

int? age;           // Defaults to null
double? price = 19.99;
bool? isAvailable = true;

// All can be set to null
price = null;
isAvailable = null;

직접 해보기

void main() {
  // 여기에 nullable 변수를 선언하세요
  String? username = ?;
  int? userAge = ?;
  
  // 레이블과 함께 초기 값을 출력하세요
  print("Username: " + username.toString());
  print("User age: " + userAge.toString());
  
  // 변수에 새로운 값을 할당하세요
  username = ?;
  userAge = ?;
  
  // 동일한 레이블로 업데이트된 값을 출력하세요
  print("Username: " + username.toString());
  print("User age: " + userAge.toString());
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨