[코틀린 스터디11]0716

ssook·2021년 7월 16일
0
post-thumbnail

✅ 함수의 실행 블록

  • 함수의 블록
    : 블록 내에서 사용하는 변수 - 지역 변수(Local Variable)

  • 함수의 범위, 최상위 함수와 지역 함수
    : .kt파일을 만들고 곧바로 main()함수나 사용자가 직접 함수를 만드는 것을 최상위 레벨 함수라고 함.
    : 함수에 또 다른 함수가 선언되어 있는 경우엔 지역 함수(Local Function)라고 함**

fun main() { // 최상위 레벨의 함수
    ...
    fun secondFunc(a: Int) { // 지역 함수 선언
        ... 
    }
    userFunc(4) // 사용자 함수 사용 - 선언부의 위치에 상관 없이 사용
    secondFunc(2) // 지역 함수 사용 - 선언부가 먼저 나와야 사용 가능
}

fun userFunc(counts: Int) { // 사용자가 만든 최상위 레벨의 함수 선언
    ...
}

✅ 최상위 및 지역 함수의 사용 범위

: 최상위 함수는 main() 함수 전, 후 어디든 선언하고 코드 내에서 호출 가능
: 지역 함수는 먼저 선언되어야 그 함수를 호출할 수 있음 (선언 순서에 따라 영향을 받음, 아직 선언되지 않은 함수를 사용하려고 하면 'unresolved reference' 오류 발생)
: 최상위 함수는 메모리에 고정되어 있어 어느 함수 어떤 위치든 사용이 가능함.

fun a()=b() //최상위 함수이므로 b()함수 선언 위치에 상관 없이 사용 가능
fun b()=println("b") //b()함수의 선언

fun c(){
	fun d() = e() //오류 발생, d()는 지역함수이며 e() 내용을 모름
    fun e() = println("e")
}

fun main(){
		a() //최상위 함수는 어디서든 호출될 수 있다.
        e() //오류! c()함수에 정의된 e()는 c()의 블록을 ({})을 벗어난 곳에서 사용할 수 없음
    }

✅ 지역 변수와 전역 변수

  • 전역 변수
    : 최상위에 있는 변수로 프로그램이 실행되는 동안 삭제하지 않고 메모리에 유지
    : 여러 요소가 동시에 접근하는 경우에 잘못된 동작을 유발할 수 있음

  • 지역 변수
    : 특정 코드 블록 내에서만 사용
    : 블록 시작 시 임시로 사용되며 주로 스택 메모리를 사용

profile
개발자에서, IT Business 담당자로. BrSE 업무를 수행하고 있습니다.

0개의 댓글