Swift의 Function 구문에 대해 정리하려고 한다. 다른 언어와 마찬가지로 Function은 resuable block으로, 코드의 개선과 유지보수를 위해 필수적이다.

Function Declaration

Swift는 아래와 같은 Syntax로 함수를 정의할 수 있다.

func functionName(parameters: ParameterType) -> ReturnType {
    // Function body
    // Perform tasks and return a value of ReturnType
}
  • func : Function을 정의
  • functionName : Function의 이름
  • parameter : Input 값을 의미한다. 즉, 매개변수. 이때 ParameterType을 정의해야 한다.
  • ReturnType : Void가 아닌 경우, 반환값의 Type을 정의한다.

Function Parameter

다른 언어와 마찬가지로, parameter(매개변수)는 0개 이상으로 설정할 수 있으며, parameter가 존재하는 경우 Type을 지정해야 한다

func greet(name: String) {
    print("Hello, \(name)!")
}

Function Calling :
greet(name : "swift!")

Output :
Hello swift

Function Return Types

Return Value가 존재하는 경우, -> 기호를 이용하여 함수를 정의할 때 Return Type을 설정한다. 만약, Return Value가 없는 경우에는 생략해도 된다.

// a와 b의 덧셈을 하고, Int 값으로 반환
func add(a: Int, b: Int) -> Int {
	reutrn a +b 
}

// Return Value가 없는 경우
func sayHello() {
	print("Hello")
}

Function Invocation

Return Value가 존재하는 경우, Variable에 바로 사용할 수 있다.

let sum = add(a:3, b:5)

Function Argument Labels

Swift에서는 함수의 Argument를 위해 외부, 내부 Parameter(매개변수)의 이름을 설정할 수 있다.
외부 Parameter는 함수가 호출될 때 사용되며, 내부 Parameter는 함수 내부에서 사용된다.

func great(to name : String) {
	print("Hello, \(name)")
}

greate(to: "Alice")

Default Parameter Valuesf

함수의 Parameter에서 Default Value가 필요한 경우, 아래와 같이 함수 Parameter의 Default Value를 설정할 수 있다.

func power(base: Int, exponent: Int = 2) -> Int {
    return Int(pow(Double(base), Double(exponent)))
}

let result = power(base: 3) // Uses default exponent of 2

In-Out Parameters

Swift에서는 Java나 C처럼, Parameter에 해당 변수의 reference를 넘기게 되면, Scope에 상관없이 해당 변수의 값을 수정할 수 있다. 이때, 정의할 때 parameter Type 앞에 inout을 사용하고, 호출할 때 &를 사용한다.

func increment(value : inout Int) {
	value += 1
}

var num = 5
increment(value : &num)

Function Overloading

Java와 유사하게, Function Overloading도 가능하다. 이때, 함수의 이름은 같게, parameter의 Type만 다르게 정의한다!

func process(number : Int) {
	// Process integer
}

func process(text: String) {
	// Process string
}
profile
RTFM

0개의 댓글

관련 채용 정보