안드로이드 개발자의 창고
[12일차 Kotlin] 함수 본문
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT
📖 함수란?
- 코드를 미리 작성해 놓고 필요할 때 불러 다 쓰는 개념
- Java에서는 클래스에 메서드를 만들어 사용하지만 Kotlin은 C 언어처럼 함수라는 개념을 제공하고 있다.
- Java 코드로 변환되면 파일_이름 클래스 내부의 static 메서드로 정의된다.
📖 코틀린 함수 기본 문법
fun 함수명(매개변수) : 반환값 타입 {
코드들..
}
📖 예제 코드
fun main() {
// 함수 호출
test1()
}
// 함수 밖에 선언된 변수는 파일_이름 클래스의 static 변수로 정의된다.
var a1:Int = 100
fun test1() {
println("test1 호출")
// 함수 밖에서 선언된 변수 사용
println("a1 : $a1")
println("--------------------------")
}
📖 함수의 매개변수
- 매개 변수는 “변수명:자료형” 형태로 정의한다.
- 함수 호출 시 전달하는 값에 매개변수를 지정하여 전달할 수 있다.
- 타입을 생략할 수 있다.
📖 예제 코드
fun main(){
test2(100, 11.11)
// 값을 부족하게 - 오류 발생
test2(100)
// 값을 더 많게 - 오류 발생
test2(100,200,300)
// 함수를 호출할 때 넘겨주는 값을 어떤 매개변수에 담을지 정할 수 있다.
test2(a2=22.22, a1=200)
// 기본 값을 가지고 있는 함수 호출
test3(100, 200);
test3(100)
test3()
test3(a2=200)
}
fun test2(a1:Int, a2:Double){
println("test2 호출")
println("a1 : $a1")
println("a2 : $a2")
}
// 기본값을 가지고 있는 매개변수
fun test3(a1:Int = 1, a2:Int = 2){
println("test3 호출")
println("a1 : $a1")
println("a2 : $a2")
}
📖 반환 타입
- 함수에서 반환할 값이 있다면 return 문을 통해 반환한다.
- 매개변수 뒤에 반환할 값의 타입을 작성해준다.
- 반환 값이 없는 함수의 경우 반환 타입에 Unit를 작성한다.
- Unit은 생략해도 된다.
📖 예제 코드
fun main(){
// 반환 값이 있는 함수 호출
var r1 = test4(100,200)
println("r1 : $r1") // r1 : 300
// 반환 값이 없는 함수 호출
test5()
test6()
}
fun test4(a1:Int, a2:Int) :Int {
return a1 + a2
}
fun test5() : Unit {
println("test5 함수 호출")
}
fun test6() {
println("test6 함수 호출")
}
📖 함수의 오버로딩(Overloading)
- Overloading : 매개변수의 형태(개수, 타입)을 다르게하여 같은 이름의 함수를 다수 만들 수 있는 개념
- 매개 변수의 형태를 다르게 하여 같은 이름으로 여러 함수를 정의하는 개념
📖 예제 코드
fun main(){
test7()
test7(100)
test7(11.11)
test7(100,200)
}
fun test7(){
println("test7 호출 - 매개변수 없음")
}
fun test7(a1:Int){
println("test7 호출 - a1 : $a1")
}
fun test7(a1:Double){
println("test7 호출 - a1 : $a1")
}
fun test7(a1:Int, a2:Int){
println("test7 호출 - a1 : $a1, a2 : $a2")
}
📖 지역 함수
- 함수 내에 정의한 함수
- 지역함수는 지역함수를 가지고 있는 함수 내부에서만 사용이 가능하다.
📖 예제 코드
fun main(){
test8() // "test8 호출", "test9 호출"
test9() <<< 오류 발생
}
fun test8(){
println("test8 호출")
fun test9(){
println("test9 호출")
}
// 지역함수 호출
test9()
}
'Computer > Kotlin' 카테고리의 다른 글
[12일차 Kotlin] 반복문(Loop) (0) | 2023.05.12 |
---|---|
[12일차 Kotlin] When (0) | 2023.05.12 |
[12일차 Kotlin] 제어문 (0) | 2023.05.12 |
[12일차 Kotlin] 변수와 자료형 (0) | 2023.05.11 |
[12일차 Kotlin] 기본 문법 (2) | 2023.05.11 |