2019. 12. 1. 18:19ㆍSwift
import UIKit
//function
func greet(person: String, day: String) -> String{
return "hello \(person)"
}
greet(person: "ddd", day: "wed")
//여러개의 return 값을 줄 수 있다.
func calculateStatistics(scores: [Int])->(min: Int, max:Int, sum:Int){
var min = scores[0]
var max = scores[0]
var sum = 0
for score in scores {
if score>max{
max = score
}else if score<min{
min = score
}
sum += score
}
return (min, max, sum)
}
let statistics = calculateStatistics(scores: [5,3,100,3,9])
print(statistics.sum)//120
print(statistics.2)//120
//함수안에 함수를 정의할 수 있음.
func returnFifteen()->Int{
var y = 10
func add(){
y += 5
}
add()
return y
}
returnFifteen()
//다른 함수를 리턴할 수 있음
func makeIncrementer() -> ((Int)->Int){
func addOne(number: Int) -> Int{
return 1+number
}
return addOne
}
var increment = makeIncrementer()
print(increment) //parameter가 int, return이 Int인 function
increment(7)//8
//매개변수로 function을 줄 수 있음.
//param - (int 배열:list, int가 매개변수, return이 boolean인 함수:condition)
func hasAnyMatches(list: [Int], codition: (Int) -> Bool)->
Bool {
for item in list {
if codition(item){
return true
}
}
return false
}
func lessThanTen(number: Int)->Bool{
return number<10
}
var numbers = [20, 19, 1, 31]
hasAnyMatches(list: numbers, codition: lessThanTen)
//in은 인수를 분리하고 본문과 리턴유형을 분리할 때 사용
numbers.map({(number:Int)->Int in
let result = 3*number
return result
})
//타입이 정해져 있다면, param,return 생략도 가능함.
let mappeedNumbers = numbers.map({number in 3*number})
print(mappeedNumbers)
//변수의 이름대신, 숫자로 매겨변수를 사용할 수 있음,
let sortedNumbers = numbers.sorted{ $0>$1 }
print(sortedNumbers)
'Swift' 카테고리의 다른 글
Swift) object & class (0) | 2019.12.01 |
---|---|
Swift) if-else, 반복문(for, for-in, while ..) (0) | 2019.10.06 |
Swift) 변수, 상수, 배열, Dictionary (0) | 2019.09.29 |