본문 바로가기

Programming/Swift for Beginners

[Swift] 027 Functions and Closures - 1 (함수 코딩하기 ) for beginners


함수와 클로저 사용하기(Writing Functions and Closures)

이제까지 변수, 상수, 딕셔너리, 배열, 루프 구문, 제어 구문 등 많은 내용을 알아보았습니다. REPL 명령행 인터페이스 및 Xcode의 플레이그라운드 기능을 사용해 간단한 코드를 입력하며 Swift 언어를 조금 알아 보았습니다.

그러나, 지금까지 코드를 몇 개 입력하고 결과를 관찬ㄹ하는 실험 수준에만 머물렀는데, 이제는 코드를 조금 더 체계화할 필요성이 있습니다. 이제부터는 간결하지만, 다시 사용할 수 있는 함수를 사용해 Swift 코드를 좀 더 깔끔하게 정리하고자 합니다.


함수(The Function)

학창시절 함수에 대해 공부를 해 본적이 있을겁니다. 기본적으로 함수는 산수식으로 입력을 받아 계산을 수행하고 결과를 제공하는 수학 공식입니다.

수학 함수는 특정 표기법이 있습니다. 예를 들면 화씨를 섭씨로 변경할 때 아래와 같은 함수를 사용합니다.

f(x)=9(x-32)*5

함수의 중요한 부분은 다음과 같습니다.

  • 이름: 이 경우 함수의 이름은 f 입니다.
  • 입력 또는 독립 변수 : 함수에 사용되는 값을 가지고 있으며, 이 함수에서는 x로 표현합니다.
  • 수식: 등 부호의 오른쪽에 있는 모든 것을 말합니다.
  • 결과: 등 부호의 왼쪽에 있는 f(x)의 값을 말합니다.

함수는 수학적인 표기법으로 쓰지만, 사람들이 사용하는 언어로도 표현할 수 있습니다. 우리 말로 샘플 함수는 다음과 같이 설명할 수 있습니다.

함수는 독립 변수 x와 독립 변수 32의 차의 결과에 5를 곱한 결과를 9로 나눈 것입니다.

설명보다는 수식이 더 간결하고 깔끔합니다. 함수의 강점은 작업을 수행하기 위해 재사용이 가능하고 파라미터로 호출만 하면 됩니다. 그럼 이 함수가 Swift와 어떤 연관성이 있을까요? 함수로는 수학적인 계산을 하는 것 뿐만 아니라 더 많은 작업을 할 수 있습니다.


Swift로 함수 코딩하기(Coding the function in Swift)

함수의 존재를 설정하는 Swift의 표기법은 앞서 설명한 수학적인 함수와는 약간 다릅니다. 일반적으로 Swift 언어로 함수를 선언하는 구문은 다음과 같습니다.


func funcName(parameterName : type, ...) -> returnType

구문을 명확하게 이해할 수 있도록 예를 한번 살펴보겠습니다.


Swift 함수로 온도 변환

이 그림에 보이는 함수는 우리가 얘기한 동일한 함수이지만 Swift 컴파일러가 이해할 수 있는 표기를 사용했을 뿐입니다.

아래 코드를 입력하면서 시작해 보겠습니다.

func fahrenheitToCelsius(fahrenheitValue : Double) -> Double {
    var result : Double
    
    result = (((fahrenheitValue - 32) * 5) / 9)
    
    return result
}

위 코드에는 배워야 할 새로운 문법이 있습니다. func 키워드는 Swift가 함수를 선언하는 방법입니다. func 키워드 다음에는 함수 이름 fahrenheitToCelsius, 독립 변수의 이름, 또는 괄호 안의 파라미터 이름순으로 입력합니다. 그리고 파라미터의 타입이 Double형이라고 분명하게 선언되었습니다.

그리고 다음으로 두 개의 부호인 -> 파라미터를 입력합니다. -> 부호는 함수가 자료형의 값을 반환하는 것을 의미하고, 이 경우에는 반환 값이 double 형입니다. 그 다음에는 함수의 시작을 의미하는 { 괄호를 넣습니다.

변수 result를 Double형으로 선언합니다. 이 변수는 함수를 호출하는 누구에게든 주는 값을 가지고 있습니다. -> 다음에 선언된 함수의 반환 타입과 동일한 타입입니다.

선언된 지역 변수인 result에 할당된 수식의 결과와 함께 수학적인 함수가 보입니다. 마지막으로 return 키워드를 사용해 호출자에게 반환되는 결과를 보여주고 있습니다.

함수가 입력되지만, 지금은 사이드바에 아무것도 보이지 않습니다. 함수 자체는 아무것도 할 수 없어서 사이드바도 보여줄 것이 없습니다. 함수는 유용한 작업을 수핼할 수 있지만, 반드시 호출자에 의해 호출이 되어야 합니다. 그 호출을 해보겠습니다.


새로 생성된 함수의 호출 결과

글이 마음에 드셨나요?

로그인 없이 누구나 가능한

 공감은 힘이 됩니다!