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 |
---|
댓글