测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2016年11月 |
SwiftSwift版本 | 3.0 |
SPM支持SPM | ✓ |
由Nikolai Vazquez维护。
将辛苦工作留到以后再做。
Swift开箱支持懒变量,但它们的限制相当大。
它们只能在类型定义内使用,并且需要依赖有限的上下文环境中的默认值。
不能在常量结构实例内引用。
Lazy通过让您完全控制如何实现懒加载解决了这两个问题。例如,您可以声明一个Lazy
实例任何地方,不受作用域的限制。您还可以在任意类型中使用Lazy
值,无论是实例是常量还是不是。
Swift包管理器(Swift Package Manager)是Swift的分布式依赖管理器。
将项目添加到Package.swift
。
import PackageDescription
let package = Package(
name: "MyAwesomeProject",
dependencies: [
.Package(url: "https://github.com/nvzqz/Lazy.git",
majorVersion: 1)
]
)
导入Lazy模块。
import Lazy
只需将Lazy.swift
文件添加到项目中即可。
懒值在其所包含值第一次被引用时进行评估。
如果您需要评估懒值而不获取它,您可以使用evaluate()
方法。
不确定懒值是否已被评估?只需检查wasEvaluated
即可!
let lazyInt = Lazy(1)
print(lazyInt.wasEvaluated) // false
let someInt = lazyInt.value
print(lazyInt.wasEvaluated) // true
Lazy允许您对数字操作非常“悠闲”。
let meaningOfLife = Lazy(8) * 5 + 2
let result = meaningOfLife.value // 42
如果您厌倦了在值周围使用Lazy(...)
,您可以使用~
后缀运算符。
类似于 ~
,*
后缀运算符可以用作获取包含值的快捷方式。
这些可以组合使用,以实现终极的惰性使用。
Lazy("I should sleep in today!")*.uppercased()~ // "I SHOULD SLEEP IN TODAY!"
Lazy 依据 MIT 许可证 发布。