gpt4 book ai didi

Scala - 可以在反引号标识符上使用匹配提取吗?

转载 作者:行者123 更新时间:2023-12-05 00:47:10 24 4
gpt4 key购买 nike

这个问题有点难以表述,所以我将尝试提供一个例子:

def myThing(): (String, String, String) = ("", "", "")

// Illegal, this is a Match
val (`r-1`, `r-2`, `r-3`) = myThing()

// Legal
val `r-1` = myThing()._1

第一个评估是无效的,因为这在技术上是一个匹配表达式,并且在匹配中反引号标记的标识符被假定为对范围内现有 val 的引用。

但在比赛之外,我可以自由定义“r-1”。

有没有办法使用复杂的变量名来执行匹配提取?

最佳答案

您可以明确写出完整的变量名称:

def myThing(): (String, String, String) = ("a", "b", "c")

// legal, syntactic backtick-sugar replaced by explicit variable names
val (r$minus1, r$minus2, r$minus3) = myThing()

println(`r-1`, `r-2`, `r-3`)

但是由于可以自由选择变量名(与 Java API 中称为 yield 等的方法不同),我建议发明更简单的变量名, r$minusx - 东西真的不好看。

关于Scala - 可以在反引号标识符上使用匹配提取吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52322072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com