SWfit学习2:函数和闭包
发布时间:2020-12-15 07:20:36 所属栏目:百科 来源:网络整理
导读:函数 Swift 使用 func 关键字声明函数: func greet(name: String , day : String ) - String { return "Hello (name),today is (day)." }greet( "hello" , day : "World" ) 通过元组(Tuple)返回多个值: func getPrices() - ( Double , Double , Double ){
函数 Swift 使用 func 关键字声明函数: func greet(name: String,day: String) -> String {
return "Hello (name),today is (day)."
}
greet("hello",day: "World")
通过元组(Tuple)返回多个值: func getPrices() -> (Double,Double,Double){
return (3.89,4.98,0.87)
}
getPrices()
支持带有变长参数的函数: func sumOf(numbers:Int...) -> Int{
var sum = 0
for number in numbers{
sum += number
}
return sum
}
let sum = sumOf()
let sum1 = sumOf(12,23,45,14,87)
println("sum =(sum),sum1 = (sum1)")
运行结果:sum =0,sum1 = 226 函数也可以嵌套函数: 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 incernebt = makeincrementer()
let summery = incernebt(7)
func hasAnyMatches(list:Int[],condition:Int -> Bool) -> Bool{
for item in list{
if condition(item){
return true
}
}
return false
}
func lessonThanTen(number:Int) -> Bool{
return number < 10
}
var numbers = [20,17,9,19]let haoMatch = hasAnyMatches(numbers,condition: lessonThanTen)
闭包 闭包的函数体部分由关键字 in 引入。 该关键字表示闭包的参数和返回值类型定义已经完成,闭包函数体即将开始。 numbers.map({
(number: Int) -> Int in
let result = 3 * number
return result
})
当闭包的类型已知时,可以使用下面的简化写法: numbers.map({ number in 3 * number })
此外还可以通过参数的位置来使用参数,当函数最后一个参数是闭包时,可以使用下面的语法: sort([1,5,3,12,2]) { $0 > $1 }
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |