在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Functions and Closures 使用func来声明函数,通过括号参数列表的方式来调用函数,用 --> 来分割函数的返回类型,参数名和类型,例如: func greet(name: String, day: String) -> String { return "Hello \(name), today is \(day)." } greet("Bob", day: "Tuesday") //这是swift文档中的调用方法,但是我在xcode6中编写的时候总报错,所以采用了下面的方式 greet("Bob", day: "Tuesday") //使用这种方式不会错误 使用一个元组一个函数可以返回多个值 func getGasPrices() -> (Double,Double,Double) { return (3.97,3.59,3.79) } getGasPrices() 上面的方法我不知道用什么来接收返回的值,请高手支招 func 的参数也是可变的,可以把多个参数放在一个数组中 func sumOf(sumbers:Int...) -> Int { var sum = 0 for number in sumbers { sum += number } return sum } println(sumOf()) //return 0 println(sumOf(42, 597, 12)) //return 651 函数可以嵌套,嵌套的函数可以访问在外部函数中声明的变量,你可以使用嵌套函数来解决复杂的逻辑: func returnFifteen() -> Int { var y = 10 func add() { y += 5 } add() return y; } println(returnFifteen()) //return 15 函数是一个 first-class 类型,这意味着函数的返回值可以是另一个函数: func makeIncrementer() -> (Int -> Int) { func addOne(number: Int) -> Int { return 1 + number } return addOne } var increment = makeIncrementer() increment(7) //上面的代码一直报错,不知道什么原因 //错误:Command /Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift failed with exit code 254 //如果哪位高手知道,请指教 一个函数可以作为另一个函数作为其参数 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,7,12] let temp = hasAnyMatches(numbers, lessThanTen) println(temp) //这个和上面一样的错,也有事我的xcode6 有问题 你可以通过{}来些一个闭包 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 } 上面的闭包 没搞明白。。。
|
请发表评论