gpt4 book ai didi

scala - 如何在scala中访问名称为 "creative"的对象?

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

例如,给定

object ~ {
def foo = ???
}

我如何访问该方法?

这些都不起作用:
~.foo  

`~`.foo

编译器都提示“简单表达式的非法开始”。

是的,我知道我可能不应该将类命名为“~”,但是标准库和其他一些库都可以,有时您需要使用它们。

补充:看着 sschaef's answer我试过
 $tilde.foo

这确实有效。不确定这是有意为之,还是只是将这些名称转换为 JVM 标识符的实现细节。以及这是否适用于其他风格的 Scala(例如 Scala.js)?

我会让这个开放一点,看看也许有人会提供更广泛的答案。

最佳答案

问题似乎只存在于 2.11:

Welcome to Scala 2.11.8 (OpenJDK 64-Bit Server VM, Java 1.8.0_102).
Type in expressions for evaluation. Or try :help.
scala> object ~ { def foo = 0 }
defined object $tilde

scala> ~.foo
<console>:1: error: illegal start of simple expression
~.foo
^

在 2.12 中它工作正常:
Welcome to Scala 2.12.0 (OpenJDK 64-Bit Server VM, Java 1.8.0_102).
Type in expressions for evaluation. Or try :help.
> object ~ { def foo = 0 }
defined object $tilde
> ~.foo
res0: Int = 0

关于scala - 如何在scala中访问名称为 "creative"的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40526992/

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