함수

Suyong Lee·2021년 9월 1일
1

Android

목록 보기
10/22
post-thumbnail

함수의 정의

fun 함수명(파라미터 이름: 타입) : 반환 타입 {
	return 값
}

함수의 가장 기본이 되는 구조다.

함수란 보통 위 구조처럼 입력값(파라미터)이 있고, 반환값(return 값)이 있다.

파라미터와 반환값이 없는 함수도 있는데, 이 경우에는 둘 다 작성하지 않는다.

반환값이 없는 대표적인 함수가 지금까지 사용해왔던 Log의 d 함수이다.

반환값과 입력값이 있는 함수의 정의

fun square(x: Int): Int {
	return x * x
}

보통의 함수

반환값이 없는 함수의 정의

fun printSum(x: Int, y: Int) {
	Log.d("fun", "x + y = ${x + y}")
}

Log.d 함수를 사용하기 때문에 반환값이 없는 함수로 구분되는 것 같다.

입력값 없이 반환값만 있는 함수의 정의

fun getPi(): Double {
	return 3.14
}

보통 상수를 정의하는 함수를 만들 때 사용하나보다. 반환값이 고정되어 있는 모습이다. 그래서 입력값이 필요가 없다.

함수의 사용

함수명(값)

반환값과 입력값이 있는 함수의 호출

var squareResult = square(30)
Log.d("fun", "30의 제곱은 ${squareResult}입니다.")

반환값이 없는 함수의 호출

printSum(3,5)

반환값이 없으면 위 함수처럼 대입 연산자(=)를 사용하지 않고 바로 호출해서 실행한다.

입력값이 없는 함수의 호출

val PI = getPi()
Log.d("fun", "지름이 10인 원의 둘레는 ${10 * PI}입니다.")

입력값이 없다면 괄호만으로(getPi()) 실행하고 결괏값을 받을 수 있다.

함수 파라미터의 정의

fun 함수명((val 생략) name1: String, name2: Int, name3: Double) { 실행코드 }

코틀린에서 함수 파라미터를 통해 입력되는 모든 값은 변하지 않는 이뮤터블이다. 따라서 코틀린에서 함수 파라미터는 모두 읽기 전용 키워드 val이 생략된 형태다.

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

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} 입니다.")
}

age: Int = 29 이 부분이 중요하다. 이렇게 파라미터에서 기본값을 정의해줄 수 있다.

만약 위 함수를

newFunction("Michael", weight = 67.5)

로 호출하면

name의 값은 Michael 입니다.
age의 값은 29입니다.
weight의 값은 67.5 입니다.

라고 로그가 띄워지는 것을 확인할 수 있는데

여기서 알 수 있는 점은 age를 따로 호출하지 않았더라도 age의 기본값인 29가 로그로 띄워지고, weight의 경우 함수호출 단계에서 새로 정의해준 값이 로그로 띄워진다는 점이다.

파라미터의 값을 직접 지정해주는 함수 정도로 정리할 수 있겠다.

profile
이수용

0개의 댓글

관련 채용 정보