https://www.youtube.com/watch?v=OmCaloD7sis 

     

    Dart 2.15의 특징 중에 하나인 Tear-offs에 대한 좀 더 재밋는 설명이 이어집니다. 
    기존 Dart 2.15는 아래 링크에 정리되어 있습니다. 

    2021.12.29 - [Flutter(플러터)/Dart] - Dart 2.15

     

    Dart 2.15

    Dart 2.15가 지난 9일에 발표되었습니다. dart:core 라이브러리 내 하기와 같은 기능의 변화가 있습니다. (오역으로 인한 오해를 막기 위해 영문으로 적겠습니다) Fast concurrency with worker isolates New con..

    byounghonglim.tistory.com

     

    Tear-off의 이해를 위해서 간단히 예를 몇가지 들겠습니다. 


    위 내용은 람다 내에 myHander 함수를 호출합니다. 그런데 이 때 tear-off를 사용할 때는 람다를 생성하지 말라고 경고 합니다. 
    왜나하면 위 내용은 tear-off를 사용하면 아래와 같은 코드로 충분하기 때문이죠.
    굳이 익명함수(람다)를 사용하여 리소스 낭비를 할 필요가 습니다. 

    onTap: myHander,

    위 내용 중에 주목할 부분은 onPressed이죠. 우리가 호출하는 것이 아니라 위젯이 나중에 호출할 수 있도록 제공하는 함수가 파라메터로 제공됩니다. 위 내용도 다음과 같이 변경될 수 있겠죠.

    이러한 방식을 Dart에서는 Tear-off라고 합니다. 


    Tear-off는 불필요한 람다식을 사용하지 않고 함수를 파라미터나 변수로 사용하는 것입니다.

    여기서 기존에 되지 않던 부분이 Tear-off로 적용된 추가로 설명합니다. 
    Constructor(생성자)는 Tear-off로 사용할 수 없었습니다. 

    위 데이터 클래스는 fromJson의 factory 생성자를 가집니다.

    그리고 StateManager 클래스의 생성자에서 builder를 받고 있습니다. 
    다른 곳에서 StateManager를 생성할 때, 어떻게 해야 할까요? 
    기존에는 생성자에는 Tear-off를 지원하지 않기 때문에, 아래와 같이 람다를 사용하여 함수를 호출 합니다. 

    그럼 이제 Dart 2.15에서는 어떻게 하면 될까요?
    Tear-off는 다음과 같이 한줄로 끝나게 됩니다.


    굿이쥬? 

    'Flutter(플러터) > Flutter Package of the Week' 카테고리의 다른 글

    SafeArea  (0) 2021.12.27

    댓글