最近开始学习Swift语言,不得不说Apple的这门语言真的博大精深而又清爽简洁,对于刚刚接触编程不久的我而言,习惯了C语言和OC语言的.h.m模式一下切换到这种.Swift的模式下着实是个挑战,如果您接触过ruby或者python这种脚本语言,肯定会很快上手并且运用到项目中去,最近看到Swift的函数部分,记录下来不同的方式用法,漫漫的学习之旅~
Swift中的函数
- 我们可以使用func来声明函数,使用函数名称和参数来调用函数,使用 -> 来表示函数的返回值类型,一个简单的函数实现如下:
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
- 函数可以带有可变个数的参数,这些参数在数组内表现为数组的形式
func sumOf(numbers: Int...) -> Int {
var sum = 0
for number in numbers {
sum += number
}
return sum
}
sumOf()
print(sumOf(3,6,9))
得到输出结果18
- 函数可以嵌套使用,可以使用函数的嵌套来实现复杂或者庞大的函数结构,被嵌套的函数可以访问外部的变量
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
- 函数当做另一个函数的返回值,返回值类型为函数
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
- 函数当做参数来传入一个函数里
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。