함수 사용시 주의점

쏘스야·2023년 4월 3일
0

ios 개발자의 첫걸음

목록 보기
14/61
/**
 함수 사용시 주의점
 
 */
// 1. 함수의 파라미터에 대한 정확한 이해

func someAdd(_ a: Int) -> Int {
    // a = a + 1 // a 는 let (상수라 변경이 불가능)
    var b = a + 1 // 다른 변수를 선언하여 리턴하는 방식을 사용
    return b
}

someAdd(5)

// 2. 함수 내의 변수의 Scope(스코프)
func sumOfNum(_ a: Int) -> Int{
    var sum = 0
    sum += a
    return sum
}

// sum // scope가 안쪽 밖에 안되서 실행 x
sumOfNum(4)


// 3. return 키워드의 정확한 이해

func numberPrint(n num: Int) -> Int {
    return num
}

// 리턴 타입이 없는 경우
func numberPrint2(n num: Int){
    if num >= 5 {
        print("숫자가 5이상입니다.")
        return // 함수를 벗어나기 위한 리턴
    }
    print("숫자가 5미만입니다.")
}


numberPrint2(n: 3)
numberPrint2(n: 7)

// 4. 리턴타입이 있는 경우, 함수의 실행문의 의미
// 리턴 타입이 있는 함수를 호출하는 경우, 함수를 호출하는 것은 표현식( 표현식의 결과는 함수가 리턴하는 값)

func nameString() -> String{
    return "스티브"
}

var yourName: String = nameString()


if nameString() == "스티브"{
    print("이름이 일치합니다.")
}

// 5. 함수의 중첩 사용 - 중첩된 함수(Nested Functions)

// 함수 안에 함수를 작성할 수도 있다.
// (함수 내부에 있는 함수는 밖에서 사용이 불가능)

// 함수를 제한적으로 사용하고 싶을 때, 사용

func chooseStepFunction(backword: Bool, value: Int) -> Int{
    func stepForward(input: Int) -> Int{
        return input + 1
    }
    func stepBackward(input: Int) -> Int{
        return input - 1
    }
    
    if backword {
        return stepBackward(input: value)
    }else {
        return stepForward(input: value)
    }
}


var value = 7

chooseStepFunction(backword: true, value: value)
profile
개발자

0개의 댓글