当前位置:  开发笔记 > 编程语言 > 正文

Scala的+ =在Int的上下文中定义?

如何解决《Scala的+=在Int的上下文中定义?》经验,为你挑选了1个好方法。

刚开始使用Scala
var c = 0
c += 1作品
c.+=给了我error: value += is not a member of Int

+=定义在哪里?



1> Jörg W Mitta..:

部分6.12.4 赋值运算符 Scala的语言规范(SLS)的解释这种复合赋值运算符如何脱糖:

l ?= r

(其中,?是比其他操作者字符的任何序列<,>,!并且不与启动=)被脱糖到

l.?=(r)

IFF l有一个名为?=或可隐式转换为具有名为成员的对象的成员?=.

否则,它会变得卑鄙

l = l.?(r)

(除了l保证只评估一次),如果那个类型检查.

或者,更简单地说:编译器将首先尝试l.?=(r),如果这不起作用,它将尝试l = l.?(r).

这允许类似于+=在其他语言中工作的东西,但仍然被覆盖以做一些不同的事情.

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有