swift常用命令(精简Swift代码的)

 2024-07-17  阅读 888  评论 0

摘要:Swift的语法非常好,从这篇译自normi的同名文章就能看出来。❌ 不推荐的写法✅ 推荐的写法使用块定义❌func doSome(result: (Bool) -> ()) {}✅typealias BoolBlock = (Bool) -> ()/// ....func doSom

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

,

版权声明:xxxxxxxxx;

原文链接:http://cn.tdroid.net/cea49Cz0EAgwNUVQ.html

发表评论:

管理员

  • 内容266908
  • 积分0
  • 金币0
关于我们
lecms主程序为免费提供使用,使用者不得将本系统应用于任何形式的非法用途,由此产生的一切法律风险,需由使用者自行承担,与本站和开发者无关。一旦使用lecms,表示您即承认您已阅读、理解并同意受此条款的约束,并遵守所有相应法律和法规。
联系方式
电话:
地址:广东省中山市
Email:
注册登录
注册帐号
登录帐号

Copyright © 2022 太卓开发网 Inc. 保留所有权利。 泰达科技网易库网

页面耗时0.0816秒, 内存占用1.33 MB, 访问数据库18次