SwiftLazy 1.2.0

SwiftLazy 1.2.0

Ivlev Alexander 维护。



SwiftLazy 1.2.0

  • Alexander.Ivlev

CocoaPods Version Carthage compatible License Swift Version Platform

SwiftLazy

Swift 允许直接使用惰性变量,但它们的限制比较严格。

特性

  • 惰性和提供者操作
  • 简洁的语法
  • 线程安全

用法

惰性

let lazyInt = Lazy(1)
print(lazyInt.wasMade)  // false
print(lazyInt.value) // 1
print(lazyInt.wasMade)  // true

支持算术运算

let lazyInt = Lazy<Int>{ 1 + 2 * 5 } * 4 + 10
print(lazyInt.wasMade)  // false
print(lazyInt.value) // 54
print(lazyInt.wasMade)  // true

简洁的语法

let lazyInt = Lazy(1)
print(*lazyInt) // 1

Provider

let providerInt = Provider(1)
print(lazyInt.value) // 1

支持算术运算

let providerInt = Provider<Int>{ 1 + 2 * 5 } * 4 + 10
print(providerInt.value) // 54

简洁的语法

let providerInt = Provider(1)
print(*providerInt) // 1

Lazy与Provider的区别

var counter: Int = 0
let lazyInt = Lazy<Int> {
  counter += 1
  return counter
}

print(lazyInt.value) // 1
print(lazyInt.value) // 1
print(lazyInt.value) // 1

lazyInt.clear() // no provider
print(lazyInt.value) // 2
print(lazyInt.value) // 2
print(lazyInt.value) // 2
var counter: Int = 0
let providerInt = Provider<Int> {
counter += 1
return counter
}

print(providerInt.value) // 1
print(providerInt.value) // 2
print(providerInt.value) // 3

版本1.1.0

使用参数添加Provider

let provider = Provider2<String, Int, Double> { "\($0) + \($1) = \($0 + $1)" }

print(provider.value(10, 20.0)) // "10 + 20.0 = 30.0"

支持1,2,3,4,5个参数的数量。

安装

通过CocoaPods

要使用CocoaPods安装SwiftLazy,将以下行添加到您的Podfile中:pod 'SwiftLazy'

通过 Carthage。

github "ivlevAstef/SwiftLazy"

库集成了 DITranquillity

依赖项

iOS 11.0+, macOS 10.13+, tvOS 11.0+, watchOS 4.0+, Linux; ARC

反馈

我发现了错误或有一个功能请求

请在 GitHub 问题 中提出。

问题?

您可以在电子邮件中自由地提问: [邮箱地址 obscured for security]