func functionName(parameters) -> ReturnType {
// 함수 본문
return someValue
}
매개변수 명: 매개변수 타입 으로 선언1. 매개변수가 없는 함수, 반환값이 없는 함수
-> 반환타입 을 생략 시 Void형으로 자동 생성되기에 생략 가능합니다.func greet() {
print("Hello, World!")
}
/* 위와 동일
func greet() -> Void {
print("Hello, World!")
}
*/
greet() // Hello, World!
2. 매개변수가 있는 함수
매개변수 명: 매개변수 타입 형태로 사용하는 매개변수를 전부 선언하면 됩니다.매개변수명: 변수 형태로 사용해야 하지만, 함수 선언 할때 매개변수 명 앞에 "_"를 추가 할 경우 변수명 없이도 사용가능합니다.func greet(name: String) {
print("Hello, \\(name)!")
}
greet(name: "jun") // Hello, jun!
// 위와 동일
func greet2(_ name: String) {
print("Hello, \\(name)!")
}
// 매개변수 명 없이 사용 가능
greet("jun") // Hello, jun!
3. 반환값이 있는 함수
-> 반환타입 을 작성해야하며 필수적으로 return이 포함되어 있어야 합니다.func square(number: Int) -> Int {
return number * number
}
print(square(2)) // 4
swiftCopy code
func greet(name: String = "Guest") {
print("Hello, \\(name)!")
}
// 함수 호출
greet() // "Hello, Guest!"
greet(name: "Alice") // "Hello, Alice!"
반환값 명: 반환 타입을 명시해줘야 합니다..반환명 을 붙여 사용합니다func findMinMax(array: [Int]) -> (min: Int, max: Int) {
var minValue = Int.max
var maxValue = Int.min
for number in array {
if number < minValue {
minValue = number
}else if number > maxValue {
maxValue = number
}
}
return (minValue, maxValue)
}
let result = findMinMax(array: [3, 8, 1, 12, 5])
// 지정한 반환값 명을 붙여 값 사용 /ex) result.min
print("Min: \(result.min), Max: \(result.max)") // Min: 1, Max: 12
...을 붙여 사용하며, 해당 방법으로 선언할 경우 다수의 매개변수를 넣어 사용 가능합니다.swiftCopy code
func sum(numbers: Int...) -> Int {
var total = 0
for number in numbers {
total +=number
}
return total
}
let total = sum(numbers: 1, 2, 3)
print("Sum: \\(total)") // 6
inout키워드를 사용하여 선언하며, 함수를 호출할 때 &를 사용하여 해당 매개변수를 전달합니다.func increment(_ number: inout Int) {
number += 2
}
var x = 5
increment(&x) // x = 7 으로 바뀜
print("x : \(x)") // x : 7