Tree

Swift Swift Package Manager

欢迎使用 Tree,这是一个 Swift 软件包,它实现了一个由相互连接的节点构成的分层树状结构。

An example of a basic tree hierarchy

用法

Tree 存储与每个节点关联的值。这可以是任何可识别的类型。标识符用于跟踪树中节点的身份。

构建树很简单;您创建一个根节点并添加子节点。

// Create a root node.
//
let root = Node("root")

// Create two nodes as children of the root node.
//
let A = root.append(child: "A")
let B = root.append(child: "B")

// Create some leaf nodes as children of node A.
//
let C = A.append(child: "C")
let D = A.append(child: "D")

使用声明式树构建器,构建树甚至更容易。

let root = Root("root") {
    Branch("A") {
        "C"
        "D"
    }
    
    "B"
}

然后可以枚举树或检查其属性。

print(root.isRoot)
// "true"

print(root.isLeaf)
// "false"

if let A = root.node(identifiedBy: "A") {
    print(A.reduce("") {
        $0 + "\($1.element), "
    })
    // "C, D, "
}

文档

有关用法的更多信息,请访问以下位置找到 Tree 文档: https://mattcox.github.io/Tree/

安装

Tree 使用 Swift Package Manager 分发。要在另一个 Swift 软件包中安装它,请将其作为依赖项添加到您的 Package.swift 清单中

let package = Package(
    // . . .
    dependencies: [
        .package(url: "https://github.com/mattcox/Tree.git", branch: "main")
    ],
    // . . .
)

如果您想在 iOS、macOS、watchOS 或 tvOS 应用程序中使用 Tree,请使用 Xcode 的 File > Add Packages... 菜单命令将其添加到您的项目中。

在您想使用它的任何地方导入 Tree

import Tree