

메서드 호출
메서드 호출 방법은 두가지가 있다. 하나는 인스턴스화된 변수에 (.)점을 붙여서 호출하는 방법과, 다른 하나는 인스턴스화된 객체뒤에 (.)점을 붙여 호출하는 방법이 있다.
다음과 같은 클래스가 선언되어있다.
일반적인 메서드 호출은 다음과 같다:
두번째 방법을 사용하면 다음과 같이 작성할 수 있다:
두 방법의 실행결과는 다음과 같이 모두 같다:
안녕하세요, 저는 Alice이고 20살입니다.
여기서 주의할점은 두번쨰 방법 같은 경우는 하나의 메서드만 점(.)을 붙여서 호출할 수 있다.
호출한 메서드 뒤에 다른 메서드를 점(.)을 이어 붙이면 오류가 난다.
캐스케이드 연산자란?
캐스케이드 연산자는 인스턴스에서 해당 인스턴스의 속성이나 메서드를 연속해서 사용하는 기능이다.
- 표기법: .. (두 개의 점)
- 목적: 코드를 더 간결하게 만들고 가독성을 향상시킴
캐스케이드 연산자 사용 예제
Idol 클래스를 사용하여 캐스케이드 연산자의 사용법을 살펴보겠다:
이 예제에서:
- ..sayName()과 ..sayMembersCount()는 blackPink 인스턴스에 대해 연속적으로 메서드를 호출한다.
- 각 메서드 호출 후에도 blackPink 인스턴스를 계속 참조한다.
캐스케이드 연산자의 장점
- 코드 간결성: 여러 줄의 코드를 하나의 표현식으로 압축할 수 있다.
- 가독성 향상: 동일한 객체에 대한 연속적인 작업을 명확하게 표현한다.
- 임시 변수 제거: 중간 결과를 저장하기 위한 임시 변수가 필요 없어진다.
- 메서드 체이닝과 유사하지만 더 유연함: 반환 값이 void인 메서드에도 사용 가능하다.
고급 사용 예제
캐스케이드 연산자는 객체 생성과 초기화에 특히 유용하다:
주의사항
1. null 안전성: Dart 2.12 이상에서는 null 안전성을 고려해야 한다. 객체가 null일 수 있다면 ?.. 연산자를 사용해야 한다.
2. 반환값: 캐스케이드 연산의 결과는 연산을 시작한 객체입니다. 마지막 메서드의 반환값이 아니다.
3. 괄호 사용: 복잡한 표현식에서는 괄호를 사용하여 의도를 명확히 해야 한다.
실제 프로젝트에서 캐스캐이드 연산자 사용
다음과 같은 코드가 있다고 가정해본다.
캐스케이드 연산자를 활용하여 점 2개(..)를 붙이면 ..loadRequest 메서드(함수) 실행을 하는데, 메서드 실행한 결과 값을 반환하는 게 아니라 메서드를 실행한 대상인 WebViewController() 인스턴스(객체)를 반환하라는 뜻이다.
캐스케이드 연산자를 사용하지 않고 점(.)을 하게 되면, 인스턴스 값이 반환되는게 아니라, 메서드(함수) 값이 반환되기 때문에 오류가 발생한다.
정리
controller 변수에 WebViewController() 인스턴스를 반환하는 경우:
controller 변수에 .loadRequest()를 실행한 메서드 값이 반환되는 경우:
'Dart > OOP' 카테고리의 다른 글
Dart 메서드의 매개변수 타입으로 클래스 사용하기 (1) | 2024.08.31 |
---|---|
Dart 문법 OOP - enum (0) | 2024.08.21 |
Dart 문법 OOP - static (0) | 2024.08.21 |
Dart 문법 OOP - 제네릭 (0) | 2024.08.21 |
Dart 문법 OOP - 추상 (0) | 2024.08.21 |

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!