Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 플러터
- vscode
- 맥
- 리눅스
- ExpansionTile
- 프로그래밍
- copyWIth
- command
- 코딩
- Code Generation
- 유데미
- flutter
- 파이썬
- python
- 개발
- freezeD
- ListTile
- 리버팟
- 유데미 러닝크루
- riverpod
- 도서
- 책
- dart
- 유데미 코리아
- 디자인패턴
- 가상환경
- 다트
- linux
- 명령어
- 개발자
Archives
- Today
- Total
승상의 코딩 블로그
[Flutter] extension 으로 코드를 더 깔끔하고 효율적으로 만들기 본문
extension 을 활용하면 기존 클래스나 타입에 새로운 기능을 추가할 수 있다.
기존의 클래스를 수정하지 않아도 된다.
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 와 같이 별칭을 만든 뒤 위와 같이 활용하면 된다.
반응형
'Flutter (플러터)' 카테고리의 다른 글
[Flutter] 불변 객체를 왜 사용할까? (0) | 2024.12.19 |
---|---|
[Flutter] clone, copyWith 를 활용한 깊은 복사 (0) | 2024.12.19 |
[Flutter] 페이지 이동(Navigate with named routes) (0) | 2024.07.28 |
[Flutter] 폰트(font) 추가하기 (0) | 2024.07.13 |
[Flutter] Riverpod(리버팟) - FutureProvider (0) | 2024.01.01 |
Comments