[Kotlin] 확장 함수

양현진·2022년 4월 5일
0

Kotlin

목록 보기
1/3
post-thumbnail

Kotlin에선 확장함수라는 것을 지원한다.

확장함수

기존 클래스에 메소드를 추가하는 방법이다. 확장 함수는 static 메서드라 한다.
코드로 보자

class ExtensionFunction {
    fun getResult(list: List<Int>): Int = list.plusAll()

    fun List<Int>.plusAll(): Int {
        var addAll: Int = 0
        this.forEach {
            addAll += it
        }

        return addAll
    }
}

기존 Kotlin에 List 클래스에서는 list내의 모든 Int값을 더해주는 메서드가 없다. 이렇게 기존 class에 뭔가 자기만에 메서드를 가지고 싶다면 확장함수를 이용해서 위 코드와 같이 list내 모든 값을 더해주는 메서드를 만들 수 있다.

아래 코드는 결과 값을 받아오는 코드이다.

 override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val list = listOf<Int>(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
        val result = ExtensionFunction().getResult(list)
        Log.d(TAG, "onCreate: $result")
}

이렇게만 보면 상당히 구려보이는데 위에서 말했듯 확장 함수는 static이라 프로젝트에서 파일하나를 만들고 거기에 확장함수를 박아놓으면 다른 클래스에서는 안 보이게 되어 코드 라인 수를 줄이는 효과를 볼 수 있다. 나는 가독성을 상당히 좋아하기 때문에 상당히 반가운 기능이다.

profile
Android Developer

0개의 댓글