gpt4 book ai didi

scala - 从Scala 2.9到2.10的动态特征差异

转载 作者:行者123 更新时间:2023-12-04 04:18:25 25 4
gpt4 key购买 nike

我已经编写了一些代码片段来测试动态特征功能:

class Foo extends Dynamic {
def selectDynamic(name: String) {
println("selectDynamic: " + name)
}
def applyDynamic(name: String)(args: Any*) {
println("applyDynamic: " + name)
}
def applyDynamicNamed(name: String)(args: (String, Any)*) {
println("applyDynamicNamed: " + name)
}
def updateDynamic(name: String)(value: Any) {
println("updateDynamic: " + name)
}
}

object Test {
def main(args: Array[String]) {
val foo = new Foo
foo.bar(5) //1
foo.bar(x = 5) //2
foo.bar //3
foo.baz = 5 //4
}
}

问题在于,由于 main中的第四行,它不会在Scala 2.9和2.10中都进行编译:
error: reassignment to val
foo.baz = 5

如果我评论此字符串,则2.9会提示第二行:
error: not found: value x
foo.bar(x = 5)

同时2.10将进行编译,程序将产生:
applyDynamic: bar
applyDynamicNamed: bar
selectDynamic: bar

所以现在我想知道我是否做错了什么(也许错过了一些依赖项)? Scala 2.9和2.10中的Dynamics有区别吗? foo.baz = 5怎么了?

最佳答案

关于scala - 从Scala 2.9到2.10的动态特征差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11340318/

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