语法(四) – 懒加载
懒加载是统性能优化的方式之一。 懒加载闭包 基本语法,如下所示 lazy var yourVariableName: SomeType = { return SomeType(whatever: 'foobar') }() 懒加载闭包代码示例 class Singer { let n...
语法(三) – guard
guard 语句的主要用法有以下几种: 提前返回 减少缩进级别 高Happy Path可见性 提前返回 guard 用于提前返回,如果某些先决条件未满足,则退出函数。 func giveAward(to name: String) { guard n...
语法(二) – 空合操作符
一个变量只有在确定有值的情况下才能被使用。另一种方法是使用 ! 显式地解除可选项。这也被称为 '崩溃操作符',因为如果在使用 ! 时将可选项设为 nil,那么程序将立即崩溃。 空合操作符 ??,允...
语法(一) – 模式匹配
Swift 的 switch 语句具有灵活却富有表现力的匹配模式。 基本使用 单值匹配 单值字符串匹配 let name = "twostraws" switch name { case "bilbo": print("Hello, Bilb...
环境(三) – 自定义组件样式
本文以 badge 为例,实现自定义组件样式的具体步骤: 创建一个 BadgeStyle 协议为角标样式定义接口。 为角标样式创建一个环境变键。 在 badge 修饰符中使用这个自定义角标样式。 ⻆标样式的协议...
环境(二) – 自定义环境键
环境键的自定义需要两个必要步骤和一个可选步骤: 实现⼀个⾃定义的 EnvironmentKey。 在 EnvironmentValues 上添加扩展,并提供⼀个属性,让我们能在环境中获取和设置该值。 (可选) 在 View 上...
环境(一) – 从环境中读取
环境 (environment) 本质上,它是⼀种内置的依赖注⼊ (dependency injection) 技术。 下⾯这个例⼦中,当我们在 VStack 上设置字体时,它会传播到两个 Text 视图中去,并改变它们的外观: Font ...