Scala Copy()奇怪的行为
发布时间:2020-12-16 19:01:38 所属栏目:安全 来源:网络整理
导读:当我使用在 Scala-2.8中添加的自动生成的copy()方法时,我遇到了一些奇怪的行为. 从我所看到的,当你将一个给定的类声明为一个case类时,很多东西都是自动生成的,其中之一是copy()方法.所以你可以做以下的… case class Number(value: Int)val m = Number(6)pri
当我使用在
Scala-2.8中添加的自动生成的copy()方法时,我遇到了一些奇怪的行为.
从我所看到的,当你将一个给定的类声明为一个case类时,很多东西都是自动生成的,其中之一是copy()方法.所以你可以做以下的… case class Number(value: Int) val m = Number(6) println(m) // prints 6 println( m.copy(value=7) ) // works fine,prints 7 println( m.copy(value=-7) ) // produces: error: not found: value value println( m.copy(value=(-7)) ) // works fine,prints -7 如果这个问题已经被问到了,我很抱歉,但是这里发生了什么? 解决方法
Scala允许使用其他语言的许多方法名称,包括= – .您的参数被解析为value = – 7,因此它正在寻找一个不存在的方法= – 值.您的解决方法都会更改解析表达式的方式来分解=和 – .
scala> var foo = 10 foo: Int = 10 scala> foo=-7 <console>:7: error: value =- is not a member of Int foo=-7 ^ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |