[Kotlin] 코틀린에서 함수를 다루는 방법

말하는 감자·2025년 6월 25일
0
post-thumbnail

자바 개발자를 위한 코틀린 입문

8강. 코틀린에서 함수를 다루는 방법

📌 함수 선언 문법

📍 두 정수를 받아 더 큰 정수를 반환하는 예제

함수 구성

  1. 접근 지시어 public 은 생략 가능하다.
  2. 함수를 의미하는 키워드 fun
  3. 함수이름
  4. 함수의 매개변수, 매개변수명: 타입
  5. 함수의 반환 타입 (Unit인 경우 생략 가능)
  6. 중괄호 안에 본문
  7. 함수가 하나의 결과값이면 block 대신 = 사용 가능

if-esle가 Expression이므로 return을 하나로 모을 수 있다.

return 앞에 붙여서 전체가 하나의 결과값이 된다.
코틀린에 block(중괄호)을 없애고 =으로 쓸 수 있다.

중괄호 대신 =을 쓰게 되면 코틀린은 타입을 자동으로 추론할 수 있기 때문에 반환 타입을 생략할 수 있다.
그리고 if-else를 개행을 하지않고 한번에 쓸 수 있다.

block {}을 사용하는 경우에는 반환 타입이 Unit이 아니면, 명시적으로 작성해주어야 한다.
함수는 클래스 안에 있을 수도, 파일 최상단에 있을 수도 있다. 또한, 한 파일 안에 여러 함수들이 있을 수도 있다.

📌 default parameter

📍 주어진 문자열을 N번 출력하는 예제

Java에서는 자주 쓰는 파라미터들을 위해 Overloading을 통해 같은 명칭의 함수를 여러개 선언할 수 있다.
메소드를 여러개 만드는 것은 중복되므로 코틀린에서는 default parameter를 사용한다.

밖에서 파라미터를 넣어주지 않으면 기본값을 사용한다.

기본 값을 넣어줘도 같은 결과 값이 나온다.

📌 named argument

repeat을 호출할 때 num은 3 그대로 쓰고 useNewLine은 false를 쓰고 싶다면

num을 그대로 적어서 보내는 방식도 있지만
어떤 파라미터에 이 값을 넣을 거야 라고 함수를 호출하는 쪽에서 명시해줄 수 있다.

변수 이름을 통해 직접 값을 지정한다.
지정되지 않은 매개변수는 기본값을 사용한다.

builder를 직접 만들지 않고 builder의 장점을 가지게 된다.
값을 넣어줄 때 실수로 값을 바꿔서 넣을 수 있다.

builder를 쓰게 되면

.name("말하는 감자")
.gender("FEMALE")

변수와 값에 대한 확인이 명확해지는 장점이 있는데 코틀린의 named argument를 쓰게 되면 이 장점을 가져갈 수 있다.

주의❗

코틀린에서 JAVA 함수를 가져다 사용할 때는 named argument를 사용할 수 없다.

📌 같은 타입의 여러 파라미터 받기 (가변인자)

JAVA에서는 타입 뒤에 ...을 써줌으로써 가변인자를 받는다. (ex String...)

코틀린에서는 타입 앞에 vararg을 써준다.

배열을 쓰는 경우 JAVA에서는 가변인자에 배열을 바로 넣어주지만 코틀린에서는 배열을 가변인자에 넣어줄 때 앞에 별표* 를 붙혀줘야 한다.

  • * : spread 연산자. 배열 안에 있는 것들을 마친 그냥 ,를 쓰는 것처럼 꺼내준다.

📑 출처

  • 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide) (인프런/최태현)
profile
나는 말하는 감자다

0개의 댓글