iOS 开发者可以用这些 Swift 技巧简化代码

网友投稿 729 2022-05-30

在我早年刚做iOS开发时,经常重复写一些与Swift内置函数相同的函数。今天这篇文章,给大家分享一些技巧使代码更清晰简洁。

Reduce() 函数

我们有时会需要计算数组的总和或者乘积,这种情况你可能第一反应是用for循环,如:

let numbers = [2, 3, 5] var result = 0 for num in numbers { result += num } print(result) // Prints 10

iOS 开发者可以用这些 Swift 技巧简化代码

就性能而言,这样写没有任何问题。但是 reduce 函数()可以让代码更简单一些:

let numbers = [2, 3, 5] let result = numbers.reduce(0, +) // 这等效于以下内容: // let result = 0 + 2 + 3 + 5,其中0是你输入的初始值 print(result) // Prints 10

类似地,我们可以用一行代码计算数组的乘积:

let numbers = [2, 3, 5] let result = numbers.reduce(1, *) // 这等效于以下内容: // let result = 1 * 2 * 3 * 5,其中1是你输入的初始值 print(result) // Prints 30

Swift 为 Array 提供了一些内置函数。用 for 循环时,不如考虑是否有一个内置函数可以替代。如果你不确定,一定要看看 Apple Swift 的文档。下面是两个使用 Swift 内置函数来简化代码的例子:

// 过滤数组项 struct Person { var firstName: String var lastName: String } let people = [ Person(firstName: "Bill", lastName: "Gates"), Person(firstName: "Steve", lastName: "Jobs"), Person(firstName: "Elon", lastName: "Musk"), Person(firstName: "Steve", lastName: "Wozniak") ] let results = people.filter { $0.firstName == "Steve"} // 结果包含两个人,Steve Jobs 和 Steve Wozniak // 下面是另一个例子 // 检查数组是否包含项 let numbers = [2, 3, 5] if numbers.contains(5) { print("the array contains number 5") else { print("the array does NOT contain number 5") }

三元运算符? :

三元运算符在编程语言中很常见,是个很方便的操作符,尤其是当你需要根据条件为变量赋值时。当然也不要过度使用它,正确地使用它可以简化代码并提高代码的可读性。

let isMarried = true // 使用 if-else 语句 let prefix: String if isMarried { prefix = "Mrs" else { prefix = "Ms" } // 使用三元运算符 let prefix = isMarried ? "Mrs" : "Ms"

默认值

合并操作符??可以使打开可选值变量更轻松些。

// 不使用合并操作符??的代码像这样 let name: String? = nil let greetingName: String if let nameTmp = name { greetingName = nameTmp } else { greetingName = "Customer" } let greeting = "Dear \(greetingName)" // 使用合并操作符??像这样简化你的代码 let name: String? = nil let greetingName = name ?? "Customer" // 如果名称为零,则返回“客户”。 // 否则返回 name 的值。 let greeting = "Dear \(greetingName)"

总结

作为开发者,避免重复造轮子是必要的,下面总结一些技巧,能够帮你更快更清晰的编写代码。

Reduce () :当需要组合一个整数列表时使用它。

Filter ((Element)-> Bool)-> [ Element ] :当需要过滤数组中的项时使用它。

Contains (Element)-> Bool :当需要检查数组中是否存在某个项时使用它。

三元运算符:? :当你需要根据一个条件给一个变量赋值时使用它。

默认值合并操作符?? :当你需要打开一个可选值变量并想设置一个默认值时使用它。

iOS Swift

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:贵州鑫智联 携手华为软开 打造数字工厂
下一篇:Vue进阶(幺幺贰):package-lock.json的作用
相关文章