在swift中, 一樣是存在函式和閉包的, 現在讓我們來看看swift的函式和閉包:
func person(name: string, age:string) -> string
println(person("xiaoming", "20"))
// 列印出來的結果:the name is xiaoming, age is
20
func home() -> (double, double, double)
println(home())
// 列印出來的結果: (10.0, 20.0, 30.0)
func sumof(numbers:int...) -> int
return
sum}
println(sumof(1, 2, 3))// 列印出來的結果: 6
ps: 「int…」是陣列的意思.
func returnfifeen() -> int
add()
return i
}println(returnfifeen())
// 列印出來的結果: 11
利用這個特性, 函式與函式的巢狀使用同樣是可以返回的:
func makeincrementer() ->(int-> int)
return addone
}var increment = makeincrementer()
println(increment(7))
// 列印出來的結果: 8
也可以當做另乙個引數傳入:
func hasanymatches(list: [int], condition : int -> bool) -> bool
}return
false
}func lessthanten(number: int) -> bool
var numbers = [20, 19, 7, 12]
println(hasanymatches(numbers, lessthanten))
// 列印出來的結果: true
5.閉包的宣告以及簡單運用
var names = ["chris", "alex", "ewa", "barry", "daniella"]
func backwards(s1: string, s2: string) -> bool
var reversed = sorted(names, backwards)
println(reversed)
// 列印出來的結果: [ewa, daniella, chris, barry, alex]
ps: 在sort是預設沒有返回值的, 而sorted的返回值是倒序排列.
這裡有個官方的例子:
func hasanymatches1(list:[int], condition:int -> bool) -> bool
}return
false
}func lessthanten1(number: int) -> bool
var numbers1 = [20, 9, 7, 12]
println(hasanymatches1(numbers1, lessthanten1))
// 列印出來的結果: true
numbers1.map()
number
in3 * number
})
let sortednumbers = sorted(numbers1)
println(sortednumbers)
// 列印出來的結果: [20, 12, 9, 7]
ps: sorted預設的排序是從小到大, 但是在sorted()後面加上這句**, 那麼就會根據我們縮寫的判斷來進行排序.
好了, 這次我們就講到這裡, 下次我們繼續
3 Swift 陣列 字典 集合
在oc中陣列,字典,集合有自己的表示方法,分別是array,dictionary,set 與 string 都屬於數值型別變數,他們都屬於結構體。使用簡介靈活多變,個人感覺可讀性變差了很多,用起來由點彆扭,還需要慢慢適應。基本上功能都是照辦oc的,主要包括建立,增,刪,改,查,遍歷。下面從陣列開始說...
Swift基礎語法
在swift中匯入類庫使用 import 類庫名,不再使用 和 import foundation 輸出語句 swift中的輸出語句使用print c語言中使用prientf print hello,world 常量 變數 定義常量使用 let 常量不能改變 定義變數使用var 變數可以改變 let...
Swift基礎語法
單行注釋 多行注釋 多行注釋巢狀 mark 分塊快速查詢x mark 檔案結構標記 todo 待完成標記 文件注釋 command option 文件注釋的物件 自定義型別 變數 方法等,但是重點還是方法說明 使用者 struct user 姓名 varname string 年齡 varage i...