Swift學習 A Swift Tour 函式

2021-09-09 01:13:23 字數 1535 閱讀 9782

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...