다트 .. 문법
class Calc{
int num=0;
int sum(int n) => num+=n;
Calc sumAlt(int n){
num += n;
return this;
}
}
void main1() {
final calc = Calc();
var d= calc.sum(3);
print(d); // 3
}
void main2() {
final calc = Calc();
var d= calc..sum(3)..sum(3);
print(d); // Instance of 'Calc'
}
void main3() {
final calc = Calc();
var d1= calc.sumAlt(3).sumAlt(3);
print(d1); // Instance of 'Calc'
}
코드르 보면 이해가 쉬울 것이다.
그래도 말로 풀어보자.
main1의 d 결과는 3이다.
그럼 main2의 결과는 ? 자연스럽게 6이라고 생각 할 것이다.
하지만 결과는 Calc 객체이다.
dart의 .. 문법은 sum이 연산된 결과를 포함한 Calc 객체를 반환하는 것이다.
6의 값을 알기 위해선 d.num을 해주면 알 수 있다.
main3은 ..연산자를 직접만들어 본 것이다.
조금 더 쉽게 이해 할 수 있을 것이다.
sumAlt 함수를 만들었다.
이 함수의 return은 this 즉 Clac 객체이다.
그럼 main2의 ..연산자를 안써도 같은 결과가 나오는 걸 볼 수 있다.
즉, dart의 .. 연산자는 체이닝을 편하게 해준다는 것.
'Languages > Dart & Flutter' 카테고리의 다른 글
오류 ) CocoaPods not installed or not in valid state. 해결방법 (0) | 2022.02.16 |
---|---|
오류 ) FormatException: Invalid character (at character 50) [api 주소] (0) | 2022.02.08 |
dart 어려운 stream, streamController 내맘대로 이해 (0) | 2021.01.29 |
dart 버튼아니고 스트림을 이용한 스낵바 호출 (0) | 2021.01.29 |
dart ) ListView와 ListView.builder 두가지로 만든 list (0) | 2021.01.29 |