본문 바로가기
개발해보겡/Flutter

Dart Cascade Notation

by 취미야취미 2023. 1. 5.
728x90
반응형

Cascade Notation에 알아보기 위해

먼저 클래스를 생성하고 그 값을 변경하는 코드를 작성하겠습니다.

class Human {
  String name;
  int age;
  String hair;

  Human({
    required this.name,
    required this.age,
    required this.hair,
  });

  void intro() {
    print("My name is $name and I'm $age years old. My hair-color is $hair");
  }
}

void main() {
  var human = Human(name: 'name', age: 20, hair: 'gold');
  human.age = 21;
  human.hair = 'silver';
  human.name = 'nickname';
  human.intro();
}

Human 클래스를 named constructor로 생성하고 

생성된 클래스 객체의 멤버 변수를 변경하였습니다.

human 객체의 intro() 메소드로 멤버 변수가 정상적으로 변경된 것을 확인할 수 있습니다.

그럼 이제 위의 코드를

Cascade Notation을 이용해 변경해보겠습니다.

class Human {
  String name;
  int age;
  String hair;

  Human({
    required this.name,
    required this.age,
    required this.hair,
  });

  void intro() {
    print("My name is $name and I'm $age years old. My hair-color is $hair");
  }
}

void main() {
  var human = Human(name: 'name', age: 20, hair: 'gold')
  ..age = 21
  ..hair = 'silver'
  ..name = 'nickname';
  
  human.intro();
}

짜잔 ~

Cascade Operator는 값을 복사할 때도 사용할 수 있습니다.

class Human {
  String name;
  int age;
  String hair;

  Human({
    required this.name,
    required this.age,
    required this.hair,
  });

  void intro() {
    print("My name is $name and I'm $age years old. My hair-color is $hair");
  }
}

void main() {
  var human1 = Human(name: 'name', age: 20, hair: 'gold');
  var human2 = human1
    ..age = 21
    ..hair = 'silver'
    ..name = 'nickname'
    ..intro();
}

이번에는 Cascade Operator로 값을 변경하고 

intro() 메서드도 호출해봤습니다.

감사합니다.

반응형