본문 바로가기

Language/Kotlin

[Kotlin] 타입추론과 함수

728x90
반응형

타입추론

자료형 없이 값을 할당하면?

  • 일반 정수형 리터럴 → Int로 추론
  • L이 붙은 정수형 리터럴 → Long으로 추론
  • 일반 실수형 리터럴 → Double로 추론
  • f가 붙은 실수형 리터럴 → Float로 추론
  • 16진수와 2진수 → Int로 추론
var a = 1234  // Int
var b = 1234L  // Long

var c = 12.45  // Double
var d = 12.45f  // Float

var e = 0xABCD  // Int
var f = 0b0101010   // Int

var g = true  // Boolean
var h = 'c'  // Char

반드시 특정한 자료형으로 지정해야하는 상황이 아니라면 대부분은 코틀린의 타입추론 기능을 이용하여 코드량을 줄일 수 있다.

함수

fun 함수명(매개변수명: 자료형, …): 반환형

반환값이 없다면 반환형은 생략해도 무방

return

뒤에 오는 값을 반환하는 키워드, return이 발생면 함수의 중간이더라도 값을 반환하고 함수 종료

fun add(a: Int, b: Int, c: Int): Int {
    return a + b + c
}

fun main() {
    println(add(5, 6, 7))  // 18
}

단일 표현식 함수

fun add(a: Int, b: Int, c: Int): Int = a + b + c

fun main() {
    println(add(5, 6, 7))  // 18
}

단일 표현식 함수에서는 반환형의 타입추론이 가능하므로 반환형을 생략할 수 있다.

코틀린에서 함수는 내부적으로 기능을 가진 형태이지만 외부에서 볼 때는 파라미터를 넣는다는 점 외에는 자료형이 결정된 변수라는 개념으로 접근하는 것이 좋다. (코틀린은 함수형 언어!!!)

728x90
반응형

'Language > Kotlin' 카테고리의 다른 글

[Kotlin] 흐름제어와 논리연산자  (0) 2023.09.04
[Kotlin] 반복문과 증감연산자  (0) 2023.09.02
[Kotlin] 조건문과 비교연산자  (0) 2023.09.02
[Kotlin] 형변환과 배열  (0) 2023.08.31
[Kotlin] 변수와 자료형  (0) 2023.08.31