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「)'是? –