tft每日頭條

 > 科技

 > swift常用命令

swift常用命令

科技 更新时间:2024-05-09 02:22:23

Swift的語法非常好,從這篇譯自normi的同名文章就能看出來。

swift常用命令(精簡Swift代碼的)1

❌ 不推薦的寫法 ✅ 推薦的寫法

使用塊定義

❌ func doSome(result: (Bool) -> ()) {} ✅ typealias BoolBlock = (Bool) -> () /// .... func doSome(result: BoolBlock) {}

使用參數的默認值

func logSome(_ msg: String, detail: String = "default detail") {} logSome("this is msg")

用guard讓判斷早歸

❌ func doSome(info: Info) { if let name = info.name { doOther(name: name) } } ✅ func doSome(info: Info) { guard let name = info.name else { return } doOther(name: name) }

省略self、init

❌ public override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = .blue let testView = UIView.init() self.view.addSubview(testView) } ✅ public override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .blue let testView = UIView() view.addSubview(testView) }

使用``來定義方法或屬性

✅ enum Style { case cancel case `default` } class LogProvider { static let `default` = LogProvider() }

使用 ?? 返回默認值

✅ func doSome(info: Info) { let name = info.name ?? "default name" }

使用三元表達式

❌ var text: String? if isMe { text = "Me" } else { text = "other" } ✅ let text = isMe ? "Me" : "other"

省略類型

❌ view.backgroundColor = UIColor.blue ✅ view.backgroundColor = .blue

使用擴展進行分類

❌ class LoginVC: UIViewController, UITextFieldDelegate, UITableViewDataSource, UITableViewDelegate { } ✅ class LoginVC: UIViewController { /// … } extension LoginVC: UITextFieldDelegate { /// … } extension LoginVC: UITableViewDataSource, UITableViewDelegate { /// … }

強制解包和轉換

❌ let name = info.name! ✅ guard let name = info.name else { print("name is nil") return }

使用速記名稱類型

❌ var items = Array<String>() var map = Dictionary<String, String>() func doSome() -> Void let callback: () -> Void ✅ var items = [String]() var map = [String : String]() func doSome() let callback: () -> ()

避免使用标記值

❌ func doSome() -> Int {} let index = doSome() if index == -1 { /// fail } else { /// success } ✅ func doSome() -> Int? {} guard let index = doSome() else { print("fail") return } /// success

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved