TIL

Lec 08. 코틀린에서 함수를 다루는 방법

1. 함수 선언 문법

접근 지시어 fun 함수 이름(파라미터): 반환타입 {
}
// 자바의 함수
public int max(int a, int b) {
  if (a > b) {
    return a;
  }
  return b;
}
// 코틀린의 함수
fun max(a: Int, b: Int): Int {
  return if (a > b) {
    a
  } else {
    b
  }
}
fun max(a: Int, b: Int): Int =
  if (a > b) {
    a
  } else {
    b
  }
}

코틀린 함수의 특징

fun max(a: Int, b: Int) = if (a > b) a else b

2. default parameter

// 출력할 문자열, 반복 횟수, 개행 여부를 받아 문자열을 반복 출력하는 메서드
public void repeat(String str, int num, boolean useNewLine) {
  // ...
}

public void repeat(String str, int num) {
  repeat(str, num, true);
}

public void repeat(String str) {
  repeat(str, 3, true);
}
fun repeat(
  str: String,
  num: Int = 3,
  useNewLine: Boolean = true
) {
  // ... 
}

3. named argument (parameter)

fun main() {
  repeat("Hello Wiorld", useNewLine = false)
}
fun main() {
  printNameAndGender(
    name = "does",
    gender = "MALE"
  )
}

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

fun printAll(vararg strings: String) {
    for (str in strings) {
        println(str)
    }
}

fun main() {
  printAll("A", "B", "C")
  
  val array = arrayOf("A", "B", "C")
  printAll(*array)
}