如果我有一个复杂的Map类型,比如
type MyMap = Map[(String, String), List[Map[String, Int]]]
字符串
有没有办法做类似Map.Key
的事情来获取密钥的类型(这里是(String, String)
)?
我希望标准的答案是要么声明作为键和值类型的类,要么使用
type MyMapKey = (String, String)
type MyMapValue = List[Map[String, Int]]
type MyMap = Map[MyMapKey, MyMapValue]
型
在本例中,我在许多地方使用了MyMap
,但只在一个地方使用了键和值类型,这些类型为Map准备了数据。因此键和值类型感觉就像是实现细节,不需要与MyMap相同级别的名称。
这是其他语言中具有表达类型系统的常见特性,所以我希望在Scala中找到它,但它似乎并不存在。
我使用Scala 3,如果这很重要的话。
1条答案
按热度按时间lnxxn5zx1#
在Scala 3中,您可以使用匹配类型
字符串
或
型
测试:
型
https://docs.scala-lang.org/scala3/reference/new-types/match-types.html