[android : kotlin] 코틀린 함수(메서드) 선언 방법 및 호출 방법(vararg) & 사용 예시
코틀린에서 함수(메서드)를 선언 후 호출 하는 방법에 대해 알아보자. 함수 선언은 fun 키워드로 시작된다. 함수 사용시 반환 값이 없는 경우 Unit를 사용하면 된다. Unit은 자바 언어에서 Void 형으로 보면 된다. 자바에서 Void형은 반환할 값이 없을 경우 사용한다. 코틀린에서 Unit은 반환할 자료형이 없을 경우에 사용되는 것으로 Unit형을 반환한다. Void와는 개념이 다르긴 하다. 완전하게 동일하지 않다. 아래 예제를 살펴보면 이해가 될 것이다.
fun 함수 이름([매개변수 이름: 자료형, 매개변수 이름: 자료형..]): [반환값의 자료형] {
표현식...
[return 반환값]
}
fun main() {
println("sum :" +sum(10, 20))
println("sum2 :" +sum(10, 20))
println("sum3 :" +sum(10, 20))
println("max :" +max(10, 20))
}
fun sum(a: Int, b: Int): Int{
var sum = a + b
return sum
}
fun sum2(a: Int, b: Int): Int = a + b
fun sum3(a: Int, b: Int) = a + b
[출력결과]
sum :30
sum2 :30
sum3 :30
max :20
■일반적인 사용법
fun sum(a: Int, b: Int): Int{
var sum = a + b
return sum
}
■ 간략하게 사용하는 방법 : 일반적인 사용방법에서 중괄호{}를 이퀄(=)로 대체해서 사용하는 방법이다. return 키워드도 생략이 가능하다. 간략하게 사용하는 방법으로 코딩시, return문을 사용하게 될 경우 오류가 발생된다. return 키워드는 중괄호를 사용하는 경우에 사용 가능하다.
fun sum(a: Int, b: Int): Int = a + b
■ 반환자료형 생략하기 : 추론이 가능하기 때문에 생략이 가능하다.
fun sum(a: Int, b: Int) = a + b
■ Unit 형 사용하기
fun main() {
println("sum :" +sum(10, 20))
}
fun sum(a: Int, b: Int): Unit{
val sum = a + b
println("sum : $sum" )
}
[출력결과]
sum : 30
sum :kotlin.Unit
■함수 생성시 매개변수 기본값 적용하기
fun main() {
add("IU","없음")
add2("IU","test@test.com")
add2("IU")
}
fun add(name: String, email: String){
println("이름 : $name, 이메일 : $email")
}
fun add2(name: String, email: String = "Default값 지정"){
println("이름 : $name, 이메일 : $email")
}
[출력결과]
이름 : IU, 이메일 : 없음
이름 : IU, 이메일 : test@test.com
이름 : IU, 이메일 : Default값 지정
fun main() {
defaultPlus()
defaultPlus(3000,5000)
}
fun add(name: String, email: String){
println("이름 : $name, 이메일 : $email")
}
fun add2(name: String, email: String = "Default값 지정"){
println("이름 : $name, 이메일 : $email")
}
fun defaultPlus(x: Int = 50, y: Int = 100){
println("x+y=" + (x+y).toInt())
println("x+y=" + (x+y))
println("x+y=" + x+y)
println(x+y)
println("n")
}
[출력결과]
x+y=150
x+y=150
x+y=50100
150
x+y=8000
x+y=8000
x+y=30005000
8000
■함수 호출시, 함수의 디폴트값 변경하여 사용하는 방법 : 매개변수 y의 기본값을 변경하고자 할 경우, 아래 예제 처럼 함수 호출시 인자값에 y=300으로 호출하면 된다.
fun main() {
defaultPlus2(3000,y=300)
defaultPlus2(3000)
}
fun defaultPlus2(x: Int = 50, y: Int = 100){
println("x+y=" + (x+y))
println("n")
}
[출력결과]
x+y=3300
x+y=3100
■함수의 매개변수가 여러개 일 때 호출하는 방법
fun main() {
defaultPlus3(100,200, 300)
defaultPlus3(x=10, y=100, z=40)
defaultPlus3(y=100, z=40)
}
fun defaultPlus3(x: Int = 50, y: Int, z: Int){
println("x+y+z=" + (x+y+z))
println("n")
}
[출력결과]
x+y+z=600
x+y+z=150
x+y+z=190
■ 매개변수가 확정되지 않은 경우, vararg 키워드를 사용하여 가변적으로 인자의 개수를 전달 받을 수 있다.
fun main() {
normalVararg(1)
normalVararg(1,2,3,4,5,6)
}
fun normalVararg(vararg x: Int){
for(num in x){
println("$num")
}
}
[출력결과]
1
1
2
3
4
5
6
[REFERENCE]
Do it! 코틀린 프로그래밍: 03-1 함수 선언하고 호출하기