https://dart.dev/guides/language/extension-methods
다른 사람의 API를 사용하거나, 광범위하게 사용되는 라이브러리를 구현할 때
API를 수정하는 것이 비효율적이거나 불가능한 경우가 있다.
하지만 그래도 어떤 기능을 추가하고 싶은 경우,..!
예를 들어,
int.parse('42')
로 사용하는 대신
'42'.parseInt()
와 같이 String에 기능을 추가해서 사용하고 싶을 수도 있다.
이러한 경우에 extenstion 을 사용한다.
method 뿐만 아니라 member(getter, setter, operator) 등도 정의가 가능하다. field는 안 됨
extension은 이름도 가질 수 있다.
위의 예제를 가능하게 하는 extension은
extension NumberParsing on String {
int parseInt() {
return int.parse(this);
}
}
와 같이 구현이 가능하다.