Merkle Trees在几个分布式复制键/值存储中用作反熵机制:
毫无疑问,反熵机制是一件好事 - 在生产过程中,瞬间失败就会发生.我只是不确定我理解为什么Merkle Trees是最流行的方法.
将完整的Merkle树发送给对等体涉及将本地密钥空间与每个键值的散列一起发送到该对等体,存储在树的最低级别中.
区分从同伴发送的Merkle树需要拥有自己的Merkle树.
由于两个对等体必须已经有一个已排序的键/值 - 哈希空间,为什么不进行线性合并以检测差异?
我只是不相信树结构在考虑维护成本时会提供任何节约,而且已经完成线性遍历树叶的事实只是为了在线上序列化表示.
为了解决这个问题,一个稻草人替代方案可能是让节点交换散列摘要数组,这些散列摘要通过模数环位置逐步更新和删除.
我错过了什么?
我的枚举定义如下
enum Fruit {
case Apple(associatedValue: String)
case Orange(associatedValue: String)
}
Run Code Online (Sandbox Code Playgroud)
我有一个函数,它接受类型为Fruit的参数
func printNameOnly(fruit: Fruit) {
}
Run Code Online (Sandbox Code Playgroud)
在这个函数中,我想把枚举的情况作为一个字符串,即我想得到字符串"Apple"或"Orange",而不考虑相关的值.Swift可以实现吗?
我显然可以编写一个函数,它接受水果枚举并使用case语句返回一个字符串,但我试图找到一种方法来避免这种情况,因为我想要的字符串是enum case name本身.