函數(shù)
Swift定義函數(shù)的格式:
語義:將前面計算的結(jié)果返回給 ->返回值
func 函數(shù)名稱(參數(shù)列表) -> 返回值
{
執(zhí)行代碼
}
練習
沒有返回值沒有參數(shù)
//創(chuàng)建方法一
func talk1() -> Void
{
print("Swift")
}
talk1()
//創(chuàng)建方法二
func talk2() ->()
{
print("Swift")
}
talk2()
//創(chuàng)建方法三
func talk3()
{
print("Swift")
}
talk3()
有返回值沒有參數(shù)
func getString() -> String
{
return "Swift"
}
getString()
有參數(shù)沒有返回值
func sum1(a:Int,b:Int)
{
print(a + b)
}
sum1(a: 4, b: 4)
有參數(shù)有返回值
func sum2(a:Int,b:Int) -> Int
{
return a + b;
}
print(sum2(a: 4, b: 4))
- 總結(jié)
- 如果沒有返回值,
-> 返回值
可以省略
- 默認情況下,在調(diào)用函數(shù)時,第一個參數(shù)名是省略的
閉包
閉包格式
{
(參數(shù)) -> 返回值類型
in
執(zhí)行語句
}
實例:
loadData { () -> () in
print("執(zhí)行回調(diào)")
}
1.如果沒有參數(shù), 沒有返回值, in和in之前的東西可以省略
2.如果閉包是函數(shù)的最后一個參數(shù), 可以寫在()后面 -- 尾隨閉包
3.如果只有一個閉包參數(shù), 那么()也可以省略 -- 尾隨閉包
loadData ({
print("執(zhí)行回調(diào)")
})
loadData(){
print("執(zhí)行回調(diào)")
}
loadData{
print("執(zhí)行回調(diào)")
}
func loadData(_ finished: () -> ()){
print("耗時操作")
// 回調(diào)
finished()
}
loadData("xiaoming") { () -> () in
print("執(zhí)行回調(diào)")
}
func loadData3(_ name: String, finished: () -> ()){
print("name = \(name)")
finished()
}
weak var weakSelf = self
demo("zhangsan") { (_) -> Int in
print(weakSelf?.view.backgroundColor)
return 20
}
懶加載創(chuàng)建方式
//MARK: -View懶加載
lazy var View: UIView = {
let view = UIView(frame:CGRect(x: 0, y: 0, width: 100, height: 100))
view.backgroundColor = UIColor.redColor()
return view
}()
//MARK: -TableView懶加載
lazy var zyTableView: UITableView = {
let tempTableView = UITableView (frame: self.view.bounds, style: UITableViewStyle.plain)
tempTableView.delegate = self
tempTableView.dataSource = self
return tempTableView
}()
//MARK: -數(shù)組懶加載
lazy var dataList: [String] = {
print("我懶加載了")
return ["lnj", "lmj", "why"]
}()
lazy var 變量: 類型 = { 創(chuàng)建變量代碼 }()
- 懶加載的寫法本質(zhì)上是定義并執(zhí)行一個閉包
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。