본문 바로가기
Dart/Study

Dart의 .. 연산자: 카스케이드 연산자 사용법 완벽 가이드

by Maccrey Coding 2024. 8. 26.
반응형

Dart 코드에서 자주 사용되는 .. 연산자에 대해 알아보겠습니다.

.. 연산자는 Dart에서 유용하게 활용할 수 있는 기능 중 하나로, 코드의 가독성을 높이고, 체이닝을 통해 더 깔끔한 코드를 작성할 수 있게 도와줍니다.

이 포스트에서는 .. 연산자의 개념, 활용법, 그리고 예제를 통해 이를 쉽게 이해할 수 있도록 설명해 드리겠습니다.

 

* 체이닝(Chaining)은 프로그래밍에서 한 객체에 대해 여러 메서드나 속성 호출을 연속적으로 연결하는 기법을 의미합니다.

                                    체이닝을 사용하면 여러 작업을 하나의 표현식으로 묶어 코드를 간결하고 읽기 쉽게 작성할 수 있습니다.

.. 연산자란 무엇인가?

.. 연산자는 Dart에서 카스케이드 연산자(Cascade Operator)라고 불립니다.

이 연산자는 객체에 대해 여러 메서드 호출이나 속성 접근을 한 번에 체이닝(Chaining)할 수 있게 해줍니다.

간단히 말해, .. 연산자를 사용하면 동일한 객체에 대해 연속적으로 메서드 호출이나 속성 변경을 수행하면서, 매번 객체를 다시 참조하지 않아도 됩니다.

.. 연산자의 사용 예시

.. 연산자가 어떻게 동작하는지 간단한 예제를 통해 살펴보겠습니다.

import 'dart:io';

void main() {
  HttpResponse response = HttpResponse();
  
  // 카스케이드 연산자 없이 코드 작성
  response.statusCode = HttpStatus.ok;
  response.headers.contentType = ContentType.html;
  response.write('<h1>Hello, World!</h1>');
  response.close();
  
  // 카스케이드 연산자 사용
  response
    ..statusCode = HttpStatus.ok
    ..headers.contentType = ContentType.html
    ..write('<h1>Hello, World!</h1>')
    ..close();
}

위의 코드에서 response 객체를 사용할 때, .. 연산자를 사용하지 않은 부분과 사용한 부분을 비교할 수 있습니다.

 

카스케이드 연산자 없이 작성된 코드에서는 response 객체를 여러 번 반복해서 참조해야 합니다. 이 방식은 코드가 길어질수록 중복이 많아지고, 가독성이 떨어질 수 있습니다.

 

카스케이드 연산자를 사용한 코드에서는 객체 참조를 한 번만 사용하면서 여러 메서드 호출을 연속적으로 수행할 수 있습니다. 이는 코드가 더 간결해지고, 읽기 쉬워지는 장점이 있습니다.

카스케이드 연산자의 동작 원리

카스케이드 연산자의 핵심은 객체 자체를 반환한다는 점입니다. 예를 들어 response..statusCode = HttpStatus.ok는 response 객체를 그대로 반환하기 때문에, 다음 줄에서 이어지는 ..headers.contentType = ContentType.html 역시 같은 response 객체에 대해 작동하게 됩니다.

 

이 방식은 특히 객체의 여러 속성을 설정하거나 메서드를 호출할 때 유용합니다. 예를 들어, UI 프레임워크인 Flutter에서도 위젯의 속성을 연속적으로 설정할 때 자주 사용됩니다.

언제 .. 연산자를 사용해야 할까?

  • 객체 초기화: 여러 속성을 한 번에 설정해야 할 때.
  • 체이닝이 필요한 경우: 동일한 객체에 대해 여러 메서드를 호출하거나 속성을 변경해야 할 때.
  • 코드 가독성: 코드의 가독성을 높이고 중복된 객체 참조를 줄이고 싶을 때.

주의할 점

.. 연산자를 사용할 때 주의할 점은, 연산자 체인 내에서 호출되는 메서드나 속성은 void를 반환하면 안 된다는 것입니다.

만약 어떤 메서드가 void를 반환하면, 그 다음 체이닝이 불가능해집니다.

 

Dart에서 .. 연산자는 코드의 가독성을 높이고, 반복적인 객체 참조를 줄여주는 매우 유용한 도구입니다. 간단한 객체 설정에서부터 복잡한 메서드 체이닝에 이르기까지 다양한 상황에서 활용할 수 있습니다. Dart 코드를 작성할 때 이 연산자를 잘 활용하면 더 깔끔하고 유지보수하기 쉬운 코드를 작성할 수 있을 것입니다.

 

 

공감과 댓글은 저에게 큰 힘이 됩니다.

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

 

 

반응형