func functionName([parameterLabel:]parameter type,…]) [-> return type] {
...
[return returnValue]
}
// ex) 함수의 형태
func getStringWithIntFunction(intVal: Int) -> String {
return "This number is \(intVal)"
}
// ex) 인수 타입과 반환 타입이 없는 함수의 형태
func noParamNoReturnFunction() {
print("This function has no parameter and no return value")
}
// ex) 반환 타입이 튜플인 함수의 형태
func minMax(array: [Int]) -> (min: Int, max: Int) {
currentMin = array[0]
currentMax = array[0]
for value in array[1..array.count] {
if value < currentMin {
currentMin = value
} else if value > currentMax {
currnetMax = value;
}
}
return (currentMin, currentMax)
}
let bound = minMax(array: [8, -6, 2, 109, 3, 71])
print("min is \(bound.min) and max is \(bound.max)"
// ex) 반환 타입이 optional 튜플인 함수의 형태
func minMax(array: [Int]) -> (min: Int, max: Int)? {
if array.isEmpty { return nil }
currentMin = array[0]
currentMax = array[0]
for value in array[1..array.count] {
if value < currentMin {
currentMin = value
} else if value > currentMax {
currnetMax = value;
}
}
return (currentMin, currentMax)
}