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);
  }
}

와 같이 구현이 가능하다.