코틀린에서 제공하는 클래스에 없는 기능을 직접 확장하여 기능을 구현한다.

함수가 기존 클래스에 추가되면 이를 확장 함수 라고 합니다.

확장함수는 기존 클래스의 메서드인 것처럼 호출이 가능하다.

String클래스는 문자열을 다루며 문자열 내부에 있는 숫자가 있을 때

구별하지 못하여 예외처리에 불편함이 있다.

ex) 비밀번호 설정시 숫자가 필수입력

ex) 전화번호, 계좌번호 숫자를 써야 할 때 (방지 할 수 있으나, 예외처리용)

In PlayGround

 

fun main() {
    var a = "1"
    if(a.isNumber().not()) {
       print("a는 숫자가 아닙니다")
    } else print("a는 숫자입니다.")
    //a는 숫자입니다.

    println("치킨 먹고싶다".isNumber())
    //결과 값 : false
}

//확장할 클래스.확장할 함수명 : 반환 type
// 이 객체가 Int(정수)일 경우 true 반환
fun String.isNumber() : Boolean {
    return try {
        this.toInt()
        true
    } catch (a : NumberFormatException) {
        false
// 이 객체가 Int를 제외한 type일 경우 false
    }
}

복사했습니다!