加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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
       ^

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读