3.3. 变量和属性(Variables and Properties)
如果所有操作都是方法调用,那么变量引用(dereferencing)和赋值语句呢?实际上,如果这两种操作是针对类成员变量,那么也是被解释为方法调用的。对于所有类成员变量x:T,Scala这样定义其getter和setter:
def x:T
def x_=(new val:T):unit
这些方法引用和更新一个可修改(mutable)的内存单元,它不能被Scala程序直接访问。每一次x这个名称被引用,都会导致调用x这个无参数方法,同样,每次调用赋值语句:x=e,都是x_=(e) 这样一个方法调用。
由于变量访问也是方法调用,从而使Scala可以定义类似C#的属性概念(properties),例如,下述Celsius类定义了一个属性degree,只能设置大于-273的值:
class Celsius {
private var d: Int = 0
def degree: Int = d
def degree_=(x: Int): Unit = if (x >= 273) d = x
}
使用者可以使用这两个方法,如同他们是一个类成员变量一样:
val c = new Celsius; c.degree = c.degree-1
分享到:
相关推荐
Scala 概述(瑞士洛桑联邦理工) Scala 概述(瑞士洛桑联邦理工)
scala3 scala3 scala3 scala3 scala3
史上最强思维导图记忆scala array方法
Scala概述.pptx 变量.pptx 运算符.pptx 程序流程控制.pptx 函数式编程基础.pptx 面向对象编程(基础部分).pptx 面向对象编程(中级部分).pptx 面向对象编程(高级特性).pptx 隐式转换和隐式参数.pptx 集合(上)-基本使用...
这种函数式与面向对象的编程语言极大的简化了代码的编写量,同时它就是为并发式编程而生的。这个打包文件中包含了《SCALA程序设计-JAVA虚拟机多核编程实战》《Scala编程-中文-完整版》《Scala in Action》三本书,...
programming in scala, 3nd edition
第3讲-Scala编程详解:基础语法 共8页 第4讲-Scala编程详解:条件控制与循环 共7页 第5讲-Scala编程详解:函数入门 共5页 第6讲-Scala编程详解:函数入门之默认参数和带名参数 共5页 第7讲-Scala编程详解:函数入门...
wootjs, Scala 和JavaScript通过 Scala.js的WOOT模型 带 Scala.js的 WOOT协作文本编辑,使用WOOT算法。在 Scala 中实现,在JVM和JavaScript解释器上运行。不耐烦的 $ sbt server/run 然后打开 http:
《Scala编程(第3版)》由直接参与Scala开发的一线人员编写,因而对原理的解读和应用的...即便是不直接使用Scala或从事一线编程工作的读者,也能从《Scala编程(第3版)》学到大量关于函数式和面向对象的编程概念和技巧
由直接参与Scala开发的一线人员编写,因而对原理的解读和应用的把握更加值得信赖。...即便是不直接使用Scala或从事一线编程工作的读者,也能从《Scala编程(第3版)》学到大量关于函数式和面向对象的编程概念和技巧。
spark,scala编程指南第三版,非常好的资料,高清无水印
Scala面向对象
Scala编程(第三版)中英文,代码全 Martin Odersky 是Scala 编程语言的缔造者。他是瑞士洛桑理工学院(EPFL)的教授,同时也是Typesafe, Inc.(已更名为Lightbend)的创始人。他的研究方向是编程语言和系统,更具体...
采用ARIMA模型(自回归积分滑动平均模型)+三次指数平滑法(Holt-Winters),用scala语言实现的在spark平台运行的分布式时间序列预测算法
第3讲-Scala编程详解:基础语法 共8页 第4讲-Scala编程详解:条件控制与循环 共7页 第5讲-Scala编程详解:函数入门 共5页 第6讲-Scala编程详解:函数入门之默认参数和带名参数 共5页 第7讲-Scala编程详解:函数入门...
第3讲-Scala编程详解:基础语法 共8页 第4讲-Scala编程详解:条件控制与循环 共7页 第5讲-Scala编程详解:函数入门 共5页 第6讲-Scala编程详解:函数入门之默认参数和带名参数 共5页 第7讲-Scala编程详解:函数入门...
Scala类和对象.md
scala中没有Java中的静态成员,我们想要定义类似于Java的static变量、static方法,就要使用到scala中的单例对象——object. 定义单例对象 单例对象表示全局仅有一个对象(类似于Java static概念) 定义单例对象和...
资源包含《Scala编程》第3版英文版和第3版源代码,Scala编程第3版,目前是最新版,支持Scala 2.11以上。《Scala编程》是Scala语言的创始人参与编写的,涵盖的语法特性非常全面,并且作者解释了为什么这么设计,有...
本书是programming in scala的英文第三版,高清英文原版。