Swift) function

2019. 12. 1. 18:19Swift

반응형

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