
// func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) -> 반환타입 {
// 함수 구현부
// return 반환값
// }
예를 들어, 두 개의 정수를 더하는 함수를 정의할 수 있습니다.
func sum(a: Int, b: Int) -> Int {
return a + b // 두 정수를 더한 값을 반환
}
func printMyName(name: String) -> Void {
print(name) // 이름을 출력
}
Void를 생략할 수도 있습니다.
func printYourName(name: String) {
print(name) // 이름을 출력
}
func hello() -> Void {
print("hello") // "hello" 출력
}
반환 타입을 생략할 수 있습니다.
func bye() {
print("bye") // "bye" 출력
}
sum(a: 3, b: 5) // 8 출력
printMyName(name: "geuni") // "geuni" 출력
printYourName(name: "geeunii") // "geeunii" 출력
maximumIntegerValue() // Int의 최댓값 출력
hello() // "hello" 출력
bye() // "bye" 출력
func greeting(friend: String, me: String = "geuni") {
print("Hello \(friend)! I'm \(me)") // 친구에게 인사
}
greeting(friend: "geeunii") // 기본값 사용: "Hello geeunii! I'm geuni"
greeting(friend: "hyun", me: "kim") // 기본값 생략: "Hello hyun! I'm kim"
func greeting(to friend: String, from me: String) {
print("Hello \(friend)! I'm \(me)") // 친구에게 인사
}
greeting(to: "geeunii", from: "geuni") // "Hello geeunii! I'm geuni"
func sayHelloToFriends(me: String, friends: String...) -> String {
return "Hello \(friends)! I'm \(me)!" // 친구에게 인사
}
print(sayHelloToFriends(me: "geuni", friends: "geeunii", "hyun", "kim")) // "Hello ["geeunii", "hyun", "kim"]! I'm geuni!"
print(sayHelloToFriends(me: "geuni")) // "Hello []! I'm geuni"
// (매개변수1타입, 매개변수2타입 ...) -> 반환타입
var someFunction: (String, String) -> Void = greeting(to:from:)
someFunction("hyun", "geuni") // "Hello hyun! I'm geuni"
타입이 다른 함수는 할당할 수 없습니다.
// someFunction = sayHelloToFriends(me:friends:) // 오류 발생
func runAnother(function: (String, String) -> Void) {
function("hyeong", "geun") // 함수 호출
}
// "Hello hyeong! I'm geun" 출력
runAnother(function: greeting(to:from:))
// "Hello hyeong! I'm geun" 출력
runAnother(function: someFunction)
매개변수는 함수가 외부에서 입력받는 값으로, 함수의 기능을 수행하는 데 필요한 정보를 제공합니다. 매개변수는 이름과 타입을 가지며, 기본값을 설정하거나 가변 매개변수로 여러 값을 받을 수 있습니다. 이를 통해 함수의 재사용성과 유연성을 높일 수 있습니다.