Lazy 1.2.0

Lazy 1.2.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2016年11月
SwiftSwift版本3.0
SPM支持SPM

Nikolai Vazquez维护。



Lazy 1.2.0

  • Nikolai Vazquez

Lazy

将辛苦工作留到以后再做。

问题

Swift开箱支持懒变量,但它们的限制相当大。

  1. 它们只能在类型定义内使用,并且需要依赖有限的上下文环境中的默认值。

  2. 不能在常量结构实例内引用。

Lazy通过让您完全控制如何实现懒加载解决了这两个问题。例如,您可以声明一个Lazy实例任何地方,不受作用域的限制。您还可以在任意类型中使用Lazy值,无论是实例是常量还是不是。

安装

兼容性

  • 平台
    • macOS 10.9+
    • iOS 8.0+
    • watchOS 2.0+
    • tvOS 9.0+
    • Linux

  • Xcode 7.3和8.0
  • Swift 2.2和3.0

使用Swift包管理器安装

Swift包管理器(Swift Package Manager)是Swift的分布式依赖管理器。

  1. 将项目添加到Package.swift

    import PackageDescription
    
    let package = Package(
        name: "MyAwesomeProject",
        dependencies: [
            .Package(url: "https://github.com/nvzqz/Lazy.git",
                     majorVersion: 1)
        ]
    )
  2. 导入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 许可证 发布。