Scala编程--函数式对象】的更多相关文章

本章的重点在于定义函数式对象,也就是说,没有任何可变状态的对象的类.作为运行的例子,我们将创造若干把分数作为不可变对象建模的类的变体.在这过程中,我们会展示给你Scala面向对象编程的更多方面:类参数和构造函数,方法和操作符,私有成员,子类方法重载,先决条件检查,同类方法重载和自指向. 6.1 类Rational的式样书 一个,或许不怎么重要的,发现是数学上,分数不具有可变的状态.一个分数加到另外一个分数上,产生的结果是一个新的分数.而原来的数不会被“改变”.我们将在本章设计的不可变的Ratio…
有了 Scala 基础(4)—— 类和对象 的前提,现在就可以来构建一个基于 Scala 的函数式对象. 下面开始构造一个有理数对象 Rational. 1. 主构造方法和辅助构造方法 对于每一个类的定义,Scala 只允许一个主构造方法,主构造方法的入参紧跟在类定义的后面: class Rational(n: Int, d: Int) { } val r = new Rational(1,2) // 有理数 1/2 你可能需要一个分母 d 被预定义为 1 的一个构造方法,这事就需要用到辅助构造…
用创建一个函数式对象(类Rational)的过程来说明 类Rational是一种表示有理数(Rational number)的类 package com.scala.first /** * Created by common on 17-4-3. */ object Rational { def main(args: Array[String]) { var r1 = new Rational(1, 2) var r2 = new Rational(1) System.out.println(r…
Scala 简介 Scala 属于“可伸展语言”,源于它可以随使用者的需求而改变和成长.Scala 可以应用在很大范围的编程任务上,小到脚本大到建立系统均可以. Scala 跑在标准 Java 平台上,可以与所有 Java 库实现无缝交互.它把面向对象和函数式编程理念加入到静态类型语言中.Scala可以培育新的类型和新的控制结构,使它用起来更像是内建的类型和控制结构一样,它没有提供所有你在一种“完美齐全”语言中可能需要的东西,而是把制作这些东西的工具放在了你的手中. Scala 编程总览 Sca…
本课程主要讲解目前大数据领域最热门.最火爆.最有前景的技术——Spark.在本课程中,会从浅入深,基于大量案例实战,深度剖析和讲解Spark,并且会包含完全从企业真实复杂业务需求中抽取出的案例实战.课程会涵盖Scala编程详解.Spark核心编程.Spark SQL和Spark Streaming.Spark内核以及源码剖析.性能调优.企业级案例实战等部分.完全从零起步,让学员可以一站式精通Spark企业级大数据开发,提升自己的职场竞争力,实现更好的升职或者跳槽,或者从j2ee等传统软件开发工程…
Scala与Java的关系... 4 安装Scala. 4 Scala解释器的使用... 4 声明变量... 5 数据类型与操作符... 5 函数调用与apply()函数... 5 if表达式... 6 语句终结符.块表达式... 6 输入和输出... 6 循环... 7 高级for循环... 7 函数的定义与调用... 8 在代码块中定义包含多行语句的函数体... 8 递归函数与返回类型... 8 默认参数... 8 函数调用时带名参数... 9 变长参数... 9 序列作为变长参数... 9…
本文节选自Martin Odersky,Lex Spoon和Bill Venners所著,Regular翻译的<Programming in Scala>的第三章.Scala是一种针对 JVM 将函数和面向对象技术组合在一起的编程语言. 本节接着上一节的内容,继续介绍Scala编程中一些更先进的特征:List(数组)和Tuple(元组). Scala中使用List 方法不应该有副作用是函数风格编程的一个很重要的理念.方法唯一的效果应该是计算并返回值.用这种方式工作的好处就是方法之间很少纠缠在一…
实验 2 Scala 编程初级实践 一.实验目的 1.掌握 Scala 语言的基本语法.数据结构和控制结构: 2.掌握面向对象编程的基础知识,能够编写自定义类和特质: 3.掌握函数式编程的基础知识,能够熟练定义匿名函数.熟悉 Scala 的容器类库的基本 层次结构,熟练使用常用的容器类进行数据: 4.熟练掌握 Scala 的 REPL 运行模式和编译运行方法. 二.实验平台 已经配置完成的 Scala 开发环境.Scala 版本为 2.11.8. 三.实验内容和要求 1. 计算级数 请用脚本的方…
函数式编程 函数式编程,结构化编程,OO编程都是编程的方法论. 函数式编程主要思想是把运算过程尽量写成一系列嵌套的函数调用. 特点如下: 1.函数可以像其他数据类型一样使用 可以可以赋值给其他变量,可以作为参数传入另一个函数或者作为别的函数的返回值 2.只用表达式,不用语句 表达式是 个单纯的运算过程,总是有返回值.语句是执行某种操作,没有返回值. 3.不修改状态 只返回新值,不修改系统变量.函数的运行不依赖于外部变量或状态,只依赖输入的参数. 好处: 开发速度快,代码简洁,接近自然语言,易于理…
1.Scala单例对象 Scala单例对象是十分重要的,没有像在Java一样,有静态类.静态成员.静态方法,但是Scala提供了object对象,这个object对象类似于Java的静态类,它的成员.它的方法都默认是静态的. //如果object的静态成员要被外界访问,则该成员不能被private修饰 object University{ private var studentNo = 0 def newStudentNo = { studentNo += 1 studentNo } } obj…