Dart 언어 오답노트 : 24. named parameter와 nullable

샤워실의 바보·2023년 10월 26일
0
post-thumbnail

다음 코드에서 Person 클래스를 정의하고 있고, 이 클래스에는 nameage라는 두 개의 속성이 있습니다.

1. 클래스 정의: Person

class Person {
  String name;
  int? age;

  Person({
    required this.name,
    this.age,
  });
}
  • String name: 문자열 타입의 name 속성을 나타냅니다. 이 속성은 non-nullable이므로 값을 반드시 제공해야 합니다.
  • int? age: nullable integer 타입의 age 속성을 나타냅니다. 이 속성은 nullable이기 때문에 값을 제공하지 않아도 되며, 기본적으로 null이 됩니다.
  • Person 생성자: Person 객체를 만들 때 사용되는 생성자입니다. name은 필수(named parameter)로 설정되어 있어 반드시 값을 제공해야 하지만, age는 선택 사항입니다.

2. main 함수와 객체 생성

void main() {
  var person = Person(name: 'Joe');
  print(person.name);
}
  • main 함수에서는 Person 클래스의 인스턴스를 생성하고 있습니다. name으로 'Joe'를 전달하고 있으며, age는 전달하지 않았기 때문에 null이 됩니다.
  • print(person.name);: 생성된 person 객체의 name 속성을 출력합니다. 출력 결과는 "Joe"가 됩니다.

3. Nullable와 Non-Nullable

  • name 속성은 non-nullable이므로 객체를 생성할 때 반드시 값을 제공해야 합니다.
  • age 속성은 nullable이므로 값을 제공하지 않아도 됩니다. 값을 제공하지 않으면 기본적으로 null이 됩니다.

이 코드의 핵심은 Dart에서 nullable과 non-nullable 타입을 어떻게 사용하고 정의하는지를 보여주는 것입니다. Non-nullable 타입은 항상 값을 가지고 있어야 하며, nullable 타입은 값이 null일 수 있습니다.

profile
공부하는 개발자

0개의 댓글