functions and closures 函式和封閉性(閉包)
functions 函式的使用
swift中的函式定義和oc中有明顯的差別了,使用func定義函式,在括號裡定義引數和型別,用 -> 定義返回值型別
func greet(name: string, day: string) -> string
greet("bob", "tuesday")
使用乙個元組 ()用來返回多個返回值
func getgasprices() -> (double, double, double)
getgasprices()
函式還能夠有可變數量的引數(一般這樣的情況傳進去個陣列就好吧),注意是三個點哦 ...
func sumof(numbers: int...) -> int
return sum
}sumof()
sumof(42, 597, 12)
函式還能夠進行巢狀,巢狀的函式能夠訪問外部函式的變數
func returnfifteen() -> int
add()
return y
}returnfifteen()
新特性:swift定義了函式也是一種型別,也即是說能夠定義乙個函式變數,某個函式的返回值能夠是乙個函式
func makeincrementer() -> (int -> int)
return addone
}var increment = makeincrementer()
increment(7)
函式能夠將另外乙個函式作為它的乙個引數
func hasanymatches(list: int, condition: int -> bool) -> bool
}return false
}func lessthanten(number: int) -> bool
var numbers = [20, 19, 7, 12]
hasanymatches(numbers, lessthanten)
closures 閉包的使用
函式事實上是閉包的一種情況,你能夠定義乙個沒有名字的閉包,僅僅須要用大括號 將閉包含起來,使用 in 來劃分變數和返回值 (事實上功能就類似oc中的block)
numbers.map()
你能夠省略引數型別和返回值讓上面的閉包更加簡單介紹,僅僅有一條語句的閉包直接返回這條語句執行的結果
numbers.map()
你還能夠在括號後面寫閉包
sort([1, 5, 3, 12, 2])
下一節我們說說物件和類
Swift 對比學習Swift構造器
首先建立乙個類 實現方法如下 而當我們利用建構函式生成例項時有以下幾種方法 在oc的例子中,構造器initwithname age 內部呼叫了另乙個構造器,避免了 重複,下面來圍觀swift中如何實現。在swift中,當你建立乙個類或者結構體的時候,它們的屬性一定有初值 否則編譯不過,例如let a...
swift學習筆記
1 值永遠不會被隱式轉換為其他型別。如果你需要把乙個值轉換成其他型別,請顯式轉換。let label the width is let width 94 let widthlabel label string width could not find an overload for that acc...
swift學習資料
1 swift語法介紹官方英文版 the swift programming language 2 swift與objective c相互呼叫 using swift with cocoa and objective c 3 swift語法中文版 4 來自蘋果的程式語言 swift 5 關於swif...