package chap04.section4
fun main() { // 최상위 레벨의 함수
fun secondFunc(a: Int){ // 지역 함수 선언
// ...
}
userFunc(4) // 사용자 정의 함수 사용 (선언부의 위치 상관 없이 사용)
secondFunc(2) // 지역 함수 사용 (선언부가 먼저 나와야 사용 가능)
}
fun userFunc(counts: Int){ // 사용자가 만든 최상위 레벨의 함수 선언
// ...
}
package chap04.section4
fun a() = b() // 최상위 함수이므로 b() 함수 선언 위치에 상관없이 사용 가능
fun b() = println("b")
fun c(){
//fun d() = e() // error (d는 지역 함수이며 e의 이름을 모름)
fun e() = println("e")
}
fun main() {
a() // 최상위 함수는 어디서든 호출 가능
//e() // error (c에 정의된 e는 c의 블록을 벗어난 곳에서 사용 불가)
}
package chap04.section4
var global = 10
fun main() {
global = 15
println("global: $global")
userFunc()
println("final - global: $global")
}
fun userFunc(){
global = 20
println("userFunc - global: $global")
}
global: 15
userFunc - global: 20
final - global: 20
package chap04.section4
var global = 10
fun main() {
global = 15
val local1 = 15
println("global: $global")
userFunc()
println("final - global: $global, local1: $local1")
}
fun userFunc(){
global = 20
val local1 = 20
println("userFunc - global: $global, local1: $local1")
}
global: 15
userFunc - global: 20, local1: 20
final - global: 20, local1: 15