0
我想写一个API,让我能够轻松地创建像类型安全的阶层式结构
/ foo/bar/baz
对于这种分级密钥我创建了以下类:
sealed trait Key {
def path: String
def /(key: String): Node = Node(this, key)
}
case object Root extends Key {
override def path: String = ""
}
final case class Node(parent: Key, key: String) extends Key {
override def path: String = s"${parent.path}/$key"
}
和它的作品完美的罚款:现在
Root/"foo"/"bar"
,我也希望能够包括“占位符”,像这样:
Root/"foo"/%
然后这应返回的东西,当一个字符串被应用于回报更换Key
对象与给定值,即
(Root/"foo"/%)("bar") == Root/"foo"/"bar"
请记住,这应该在正水平工作,像这样:
Root/%/"foo"/%/"bar"
会是什么'(根/%/“富“/%/”bar“)(”baz“)'是? –