我有这样的代码:
def foo(using s: String) = ???
case class S(s: String)
val value = S("some string")
value match {
case S(str) =>
given s: String = str
foo
}
字符串
有没有一种方法可以将解包中使用的变量(str
)声明为给定的,而不是在下一行显式地创建对它的引用。
目前为止我找到的最好的
case S(str) =>
given String = str
型
这样至少可以避免变量的第二个名字,但是如果能把所有的名字都写在一行中就更好了。
真实的代码使用更独特的类型,因此与使用非常常见的类(String
)作为给定类相关的任何问题都是创建最小示例的工件
2条答案
按热度按时间liwlm1x91#
你可以用
<identifier> @ given <type>
模式匹配givens,像这样:字符串
uqzxnwby2#
另一个解决方案是:
字符串