kotlin 문법: "함수 파라미터"

SHY(code poet)·2024년 2월 6일

✨Kotlin에 관하여✨ 

목록 보기
13/36
  1. 함수 파라미터의 정의
    ① val의 생략 cf. 데이터 클래스- 생략 불가
  • 함수에 입력되는 파라미터는 마치 변수를 정의하듯이 '이름: 타입'의 형태로 정의되며, 여러 개의 파라미터가 정의될 경우는 콤마로 구분한다.
  • Kotlin에서 함수 파라미터를 통해 입력되는 모든 값은 변하지 않는 이뮤터블이다.
  • 따라서 Kotlin에서의 함수 파라미터는 모두 읽기 전용 키워드 val이 생략된 형태라고 생각할 수 있다.(즉, 변수가 아니라 상수취급이다!)
    fun 함수명((val 생략) name1: String, name2: Int, name3: Double) { 실행 코드 }

※ 만약, 인자에 var 키워드를 붙여주면, 클래스 내부에 프로퍼티로 저장된다. 만약 var을 안쓰면 매개변수로만 있고, 맴버변수로는 없으므로, printIn해도 값이 출력되지 않는다.

② 파라미터의 기본값 정의와 호출

  • 정의할 때 등호(=)를 사용해서 기본값을 설정할 수 있다.
    fun 함수명(name1: String, name2: Int = 157, name3: Double) { 실행 코드 }

  • 다음 코드는 파라미터의 기본값을 가지는 함수를 정의한 예이다. 정의된 newFunction 함수를 호출할 때 기본값이 없는 첫 번째 파라미터에만 값을 입력하면 두 번째와 세 번째 파라미터에는 설정한 기본값이 자동으로 입력됩니다.

fun newFunction(name: String, age: Int = 29, weight: Double = 65.5){
Log.d("fun", "name의 값은 ${name}입니다.")
Log.d("fun", "age의 값은 ${age}입니다.")
Log.d("fun", "weight의 값은 ${weight}입니다.")
}

newFunction("Hello")

/* [로그캣 출력 내용]
name의 값은 Hello입니다.
age의 값은 29입니다.
weight의 값은 65.5입니다.
/

③ 파라미터 이름으로 값을 입력하기 (파라미터 이름 직접 지정하기)
함수에 정의된 파라미터가 많을 경우 입력하는 값의 의미가 명확하지 않을 때가 있다.
이럴 경우 순서와 상관없이 정의된 파라미터 이름을 지정해서 직접 값을 입력할 수 있다.
위 코드에서 마지막 행을 다음과 같이 수정하고 다시 실행해보라.
ㄴQ: val 이니까, 수정 불가능한 것 아닌가.
newFunction("Michael", weight = 67.5)

/* [로그캣 출력 내용]
name의 값은 Michale입니다.
age의 값은 29입니다.
weight의 값은 67.5입니다.
/

profile
진정한 개발자는 코드를 두려워하지 않는다. 오히려 코드가 그를 두려워한다.

0개의 댓글