-
정의: 기존에 있던 클래스에 새로운 함수를 추가하는 기능
예시)
fun 클래스이름.함수이름(인자): 리턴타입 { // TODO }
3자리마다 콤마를 넣어주면서 소수점 2자리까지만 보여주고 싶다면
아래처럼 확장 함수로 만들어서 이런 식으로 사용하면 될 것 같다.
private const val DEFAULT_FORMAT = "#,##0.##" private val decimalFormat = DecimalFormat(DEFAULT_FORMAT) internal fun Double.format(): String = decimalFormat.format(this) internal fun Int.format(): String = decimalFormat.format(this) fun main(args: Array<String>) { println(5205827.format()) // 5205827 -> 5,205,827 println(1582.5928757.format()) // 1582.5928757 -> 1,582.59 }
확장 함수 기능이 편하다고 남발하면 객체 지향을 해칠 수 있다.
진짜 필요한 경우에만 사용하는 것이 좋다.