승상의 코딩 블로그

[Flutter] extension 으로 코드를 더 깔끔하고 효율적으로 만들기 본문

Flutter (플러터)

[Flutter] extension 으로 코드를 더 깔끔하고 효율적으로 만들기

양승상 2024. 12. 19. 13:38

extension 을 활용하면 기존 클래스나 타입에 새로운 기능을 추가할 수 있다.

기존의 클래스를 수정하지 않아도 된다.

 

문자열을 정수로 변경할려고 함. String 클래스에서는 Int로 변환하는 기능이 없나보다. parse 로 검색해도 없다.

int.parse("3") 은 flutter(dart) 에서 문자열을 정수에서 변경하는 방법이다.

하지만 문자열에서 숫자로 더 간결하게 변경할 순 없을까?

예를 들어, "3".toInt() 와 같이 말이다.

 

하지만 "3" 은 String 타입이고, String 클래스에는 정수로 변경하는 함수가 없다.

이렇게, 기존 클래스에다가 기능이 추가되었으면 할 때 extension 을 활용하면 좋다.

 

사용예시

 

extension 의 이름(위에서 StringExtension)은 생략해도 된다.

그러나 extension 에 이름이 있어야 라이브러리나 API 를 사용시 생기는 충돌을 해결할 수 있다.

(다른 extention 의 동일한 이름의 method 가 있을 수 있음) 

 

충돌해결하기

다른 Extension 간에 동일한 method가 있어서 충돌이 발생할 수 있다. 

이 경우에는 인스턴스에 Extension 명시적으로 wrap해주면 warp한 Extension 의 메소드가 사용된다.

 

+ Extension 을 import 하는데 Extension 이름이 같다면, import ~ as x 와 같이 별칭을 만든 뒤 위와 같이 활용하면 된다.

 

반응형
Comments