
177
10
장
함수에서 확장 함수로
코틀린에는 확장 함수라는 특별한 유형의 프로시저가 있다. 확장 함수는 메서드처럼 호출할 수 있지
만 실제로는 (보통 ) 최상위 함수다. 일반 함수를 확장 함수로 쉽게 변환할 수 있고, 역으로 확장 함수
를 일반 함수로도 쉽게 변환할 수 있다. 언제 확장 함수를 우선 사용해야 하고, 언제 일반 함수를 더
선호해야 할까?
10.1
함수와 메서드
객체 지향 프로그래밍은 메시지를 객체에 보내서 문제를 해결하는 기술이다.
myString
의 길이를 알고 싶은가? 그 객체에
myString
.
length
()
라고 메시지를 보내라. 콘솔에 문
자열을 출력하고 싶은가? 문자열을 메시지에 넣고 콘솔을 표현하는 객체에
System
.
out
.
println
(
myString
)
처럼 출력을 요청하라. 고전적인 객체 지향 언어에서는 클래스에 메서드
를 정의해서 객체가 메시지에 반응하는 방법을 정의한다. 메서드는 자신이 정의된 클래스와 엮
이며, 특정 인스턴스의 멤버(필드와 다른 메서드)에 접근할 수 있다. 메서드를 호출하면 런타
임 시스템이 (객체의 실행 시점 타입에 따라) 올바른 메서드가 호출되도록 처리해 주고, 메서
드가 인스턴스의 상태에 접근할 수 있게 해 준다.
반대로 함수형 프로그래밍에서는 값을 사용해 함수를 호출함으로써 문제를 해결한다. ...