这是一个Swift微框架,实现了Box<T>
与MutableBox<T>
,其中对于满足T
: Equatable
的T
提供了==
/!=
的实现。
Box
通常用于解决值类型的局限性
struct
或enum
enum
,其中多个case
具有值包装和拆包Box
// Wrap:
let box = Box(1)
// Unwrap:
let value = box.value
改变MutableBox
的值
// Mutation:
let mutableBox = MutableBox(1)
mutableBox.value = 2
构建递归值类型
struct BinaryTree {
let value: Int
let left: Box<BinaryTree>?
let right: Box<BinaryTree>?
}
构建参数化的enum
enum Result<T> {
case Success(Box<T>)
case Failure(NSError)
}
更多信息请查看源代码。
例如,将此仓库作为External/Box
中的子模块添加
git submodule add https://github.com/robrix/Box.git External/Box
Box.xcodeproj
拖放到你的.xcworkspace
/.xcodeproj
中。Box.framework
添加到你的目标的Link Binary With Libraries
构建阶段。Copy Files
阶段,该阶段将Box.framework
(以及你需要的任何其他框架依赖项)复制到你的bundle的Frameworks
目录中。如果你的目标是框架,你可能希望客户端应用程序包含Box.framework
。