fun 함수명(매개변수) : 반환값 타입 {}
java 코드 변환
→ 클래스(파일이름) 내부의 static 메서드로 정의
→ 함수 밖에서 선언된 변수는 클래스(파일이름)의 static 변수로 정의
매개변수 : 변수명 : 자료명
testFun(100,200) // a1 = 100, a2 = 200
testFun() // a1 = 1, a2 = 2
testFun(100) // a1 = 100, a2 = 2
testFun(a2=200) // a1 = 1, a2 = 200
fun testFun(a1:Int = 1, a2:Int = 2){
println("a1 : $a1")
println("a2 : $a2")
}
매개변수의 형태(타입,개수)를 다르게 하같은 이름의 함수를 여러개 정의
test() //test(매개변수 없음)
test(100) //test(a1 : 100)
test(1.1) //test(a1 : 1.1)
test(100,200) //test(a1 : 100, a2 : 200)
fun test(){
println("test(매개변수 없음)")
}
fun test(a1:Int){
println("test(a1 : $a1)")
}
fun test(a1:Double){
println("test(a1 : $a1)")
}
fun test(a1:Int, a2:Int){
println("test(a1 : $a1, a2 : $a2)")
}
함수 내부에 만든 함수
fun test(){
println("함수 호출")
fun innerTest(){
println("지역 함수 호출")
}
// 지역함수 호출
innerTest()
}