함수는 특정작업을 수행하는 코드 모음 형태입니다. 무슨 동작을 하는지 함수에 특정 이름을 줄 수 있다. 함수는 실행을 완료하면 전달된 변수를 수정하는 inout 파라미터로 전달 가능하다. 또한 스위프트에서 모든 함수는 파라미터 타입과 반환타입으로 구성된 타입이 있다.
함수를 호출하려면 함수의 이름으로 호출해야 하며, 함수의 파라미터와 일치하는 인자라고 알려진 입력값을 전달해야 한다. 함수의 인자는 파라미터 순서와 동일하게 제공해야 한다.
func greet(person : String) -> String {
let greeting = "Hello," + person + "!"
return greeting
}
//다음은 문자열 타입의 파라미터를 받아서 문자열 타입을 반환하는 함수이다.
greet(person : "Devleeky16498")
//다음처럼 함수의 명칭과 파라미터의 인자를 넣어 호출한다.
func greet(person : String) -> String {
return greeting = "Hello," + person + "!"
}
//다음처럼 바디를 더 짧게 하기 위해서 생성과 반환을 한 줄로 결합할 수 있다.
func sayHello() -> String {
return "hello world"
}
print(sayHello())
func sayHello(a: String, b: String) -> String {
return a + b
}
print(sayHello())
//위 함수는 2개의 String 파라미터를 가지는 함수다.
func greet(person: String) {
print("Hello, \(person)")
}
greet(person: "Dave")
//함수는 출력을 실행한다.
여러개의 값을 반환하기 위해서 함수의 반환타입으로 튜플을 사용할 수 있다.
func sayHello(a : Int) -> (Int, Int) {
return (a, a)
}
//다음과 같이 튜플 값으로 담아서 다수의 반환값을 핸들링할 수 있다.
함수의 전체바디가 한줄로 표현되면, 함수는 맹목적으로 표현식을 반환한다.
func greeting(for person : String) -> String {
"Hello," + person + "!"
}
// 다음과 같이 return이라는 단어를 명시하지 않아도, 저렇게 단순하게 1줄로 쓰여있다면 표현식을 반환한다.