Swift函数的常见使用方法

最近开始学习Swift语言,不得不说Apple的这门语言真的博大精深而又清爽简洁,对于刚刚接触编程不久的我而言,习惯了C语言和OC语言的.h.m模式一下切换到这种.Swift的模式下着实是个挑战,如果您接触过ruby或者python这种脚本语言,肯定会很快上手并且运用到项目中去,最近看到Swift的函数部分,记录下来不同的方式用法,漫漫的学习之旅~

#Swift中的函数

  • 我们可以使用func来声明函数,使用函数名称和参数来调用函数,使用 -> 来表示函数的返回值类型,一个简单的函数实现如下:
1
2
3
4
5
func getSumOfNumbers(appleNumber:Int,orangeNumber:Int,pearNumber:Int) ->Int{
    return appleNumber + orangeNumber + pearNumber
}
//getSumOfNumbers(appleNumber: Int orangeNumber:Int, pearNumber: Int)
print(getSumOfNumbers(3, orangeNumber: 6, pearNumber: 9))

得到输出结果18

  • 函数可以带有可变个数的参数,这些参数在数组内表现为数组的形式
1
2
3
4
5
6
7
8
9
func sumOf(numbers: Int...) -> Int {
var sum = 0
for number in numbers {
sum += number
}
return sum
}
sumOf()
print(sumOf(3,6,9))

得到输出结果18

  • 函数可以嵌套使用,可以使用函数的嵌套来实现复杂或者庞大的函数结构,被嵌套的函数可以访问外部的变量
1
2
3
4
5
6
7
8
9
10
11
12
func sumOf() ->Int{
    var firstNumber = 3
    var secondNumber = 6
    var thirdNumber = 9
    var sum = 0
    func add(){
    sum = firstNumber + secondNumber + thirdNumber
    }
    add()
    return sum
}
print(sumOf())

得到输出结果18

  • 函数当做另一个函数的返回值,返回值类型为函数
1
2
3
4
5
6
7
8
9
10
11
func sumOf() -> (Int -> Int) {
    var firstNumber = 3
    var secondNumber = 6
    func addOne(number: Int) -> Int {
        return firstNumber + secondNumber + number
    }
    return addOne
}
var increment = sumOf()
var sum = increment(9)
print(sum)

得到输出结果18

  • 函数当做参数来传入一个函数里
1
2
3
4
5
6
7
8
9
10
11
12
13
func hasAnyMatches(list: [Int], condition: Int -> Bool) -> Bool {
    for item in list {
        if condition(item) {
            return true
                   }
    }
    return false
}
func lessThanTen(number: Int) -> Bool {
    return number < 10
}
var numbers = [20, 19, 13, 12]
 print(hasAnyMatches(numbers, condition: lessThanTen))

由于 condition这个函数传的参数为lessThanTen这个函数,numbers为传进去的数组遍历数组list中的元素没有发现满足number<10的item,所以输出结果为false。