100 Days of SwiftUI —— Day 80:潜力
2020-09-14 本文已影响0人
韦弦Zhy
今天,您将以Swift的Result
类型的形式处理一个棘手的概念,但是为了平衡起见,我们也将介绍两个更简单的概念,因此您今天不会有太多工作。
Swift的Result
类型用于解决问题,当您知道事物A可能为真或事物B可能为真,但在任何给定时间都可以正确为真时。如果您将它们想象成布尔属性,那么每个都有两个状态(对与错),但它们总共具有四个状态:
- A 假,B 假
- A 真,B 假
- A 假,B 真
- A 真,B 真
如果您确定选项1和4永远不可能——A或B必须为真,但两者都不能为真——那么您可以立即将逻辑的复杂性减半。
美国作家Ursula K Le Guin曾经说过:
唯一使生命成为可能的是永久的,无法忍受的,不确定性,不知道下一步会发生什么。
the only thing that makes life possible is permanent, intolerable uncertainty; not knowing what comes next
from Ursula K Le Guin
好的软件绝对是相反的:我们能执行的确定性越强,能应用的约束越多,我们的代码就越安全,Swift编译器就能为我们做更多的工作。
所以,尽管Result
需要你将逃逸闭包作为传入的参数,但回报是更智能、更简单、更安全的好——完全值得。
今天,您需要处理三个主题,在其中您将了解Result
,objectWillChange
和图像插值。