这是一个Swift微框架,实现了Box<T>与MutableBox<T>,其中对于满足T: Equatable的T提供了==/!=的实现。
Box通常用于解决值类型的局限性
struct或enumenum,其中多个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。