본문 바로가기
개발관련/dart

[dart언어] ..연산자

by BlueOcean&Shark 2022. 7. 8.

dart언어를 사용하다 보면 종종 .. 연산자를 볼 때가 있습니다. .. 연산자를 cascade notation이라고 하는데 cascade notation이 어떤 연산자인지 확인해 보겠습니다.

 

 

cascade notation를 간단히 말하면 함수를 호출할때 사용합니다. 다만 함수 호출 시 return값을 무시합니다. 간단한 예제로 확인해보겠습니다.

 

임의로 B클래스를 만들었습니다.  name변수와 number변수가 있고 setName가 setNumber을 이용해 변수를 초기화할 수 있습니다. 다만 테스트를 위해 set함수에  return을 넣었습니다. 

class B{
  String name = '';
  int number = 0;

  String setName(String s){
    this.name = s;
    return this.name;
  }
  int setNumber(int n){
    this.number = n;
    return this.number;
  }
  void show(){
    print('name : ${this.name} , number : ${this.number}');
  }
}

 

아래는 메인함수입니다. b인스턴스를 생성해서 해당 인스턴스로 setName을 호출해보겠습니다. 'hom' 이 출력됩니다. .. 연산자를 이용하면 Instance of 'B'가 출력됩니다. 즉 해당 인스턴스가 출력이 됩니다. 그럼   b..setName('hom')..setNumber(10)..show();는 어떤 의미일까요?

  • b..setName('hom') => name을 'hom'으로 초기화하고 인스턴스 'B'를 반환
  • ..setNumber(10) => 인스턴스 'B'를 이용해 setNumber(10)호출 후, number값을 10으로 초기화하고 인스턴스 'B'를 반환
  • ..show() => 인스턴스 'B'를 이용해 show() 호출
void main(){
  B b = new B();

  print( b.setName('hom'));     // hom 출력
  print( b..setName('hom'));   // Instance of 'B' 출력

  b..setName('hom')..setNumber(10)..show();
  // name : hom , number : 10 출력
}

 

예제를 통해 길게 알아봤지만 요약하자만 .. 연산자는 해당 인스턴스의 함수 호출하고 반환 값으로 return값 대신 인스턴스를 반환합니다. dart언어 .. 연산자에 대해 알아봤습니다. 도움이 되셨길 바랍니다.

 

 

'개발관련 > dart' 카테고리의 다른 글

[dart언어] for, for in, forEach  (0) 2022.07.08

댓글