Scala入门指南
大数据处理语言Scala入门指南,本课程可作为学习Spark内存计算框架的先导课程。从语言实际应用的层面由浅入深开始知道,并有大量案例代码。
白 杨
这个作者很懒,什么都没留下…
展开
-
Chapter12 Scala操作符
1. 标识符变量名、函数名、类名等统称为标识符,scala可以使用任何字符来作标识符,比如 ()!#%&×+-/:<>=?@\^|~ 等。反引号中可以使用任何字符序列。 val √ = scala.math.sqrt _ √(2) val `val` = 42 println(`val`)2. 中置操作符操作符要接两个参数,分别位于操作符两边。a 标识符原创 2015-11-15 09:59:38 · 2223 阅读 · 0 评论 -
Chapter11 类型参数
1. 泛型类 个人理解:泛型实质就是类或方法在定义时没有给定具体参数类型,需要在编译或运行时自动推断出类型的一种方法。用方括号来定义类型参数,放在类名后面。下面就定义了一个带有两个类型参数T和S的类。 class Pair[T, S](val first: T, val second: S) { override def toString = "(" + first + ",原创 2015-11-14 16:13:21 · 914 阅读 · 0 评论 -
Chapter10 注 解
Chapter10这节还是挺重要的,在看Spark源码的过程中,发现其源码使用到很多注解的知识,所以这节一定要好好学习。1. 什么是注解注解:是那些你插入到代码中以方便工具可以对它们进行处理的标签。注解作用:是描述哪些被注解的表达式、变量、字段、方法或类型。Java中注解不会影响编译器生成字节码,而Scala中会影响。下面是注解的一个简单实例: import scala.refle原创 2015-11-13 21:14:59 · 1599 阅读 · 0 评论 -
Chapter09 特质
1. 为什么没有多重继承Chapter09讲的是文件和正则表达式,这章节按照其他语言安排一般都是在最后几章节,所以暂时先忽略该章节,后面会补上。转入正题,如果有两个类Student和Employee,它们都有name这个属性,如果要同时扩展这两个基类该如何做,主要问题是name属性如何处理?如果保留两个,那么访问时到底访问的是哪个呢?如果只保留一个,那么保留哪一个?该问题就是菱形问题。画一个形象原创 2015-11-11 14:22:21 · 851 阅读 · 0 评论 -
Chapter01 Scala基础知识
1. Scala编译器安装步骤:下载Scala –> 解压 –> 将Scala/bin的路径添加到PATH中 –> 打开命令行窗口 –> 输入scala有Tab键补全功能2. 声明值和变量val定义的是一个常量,值无法改变,声明变量可以用var。变量或函数的类型写在变量或函数后面。val count:String = null3. 算术和操作数重载+ - * / %等原创 2015-11-03 19:20:09 · 881 阅读 · 0 评论 -
Chapter02 控制结构和函数
1. 条件表达式Scala表达式中if/else有值。if (x > 0) 1 else -1等同于C++中:x>0 ? 1 : -1else 部分缺失,引入Unit类,写成(),不带else的语句等同于:if (x > 0) 1 else ()这里Unit相当于C++中void。Scala没有switch语句。在REPL(Read-Eval-Print Loop)中输入代码块,可以键入:p原创 2015-11-03 22:12:00 · 718 阅读 · 0 评论 -
Chapter03 数组相关操作
1. 定长数组Scala定义用到Array,定义如下。 val nums = new Array[Int](10) // 10个整数数组,初始化为0,String初始化为null val s = Array("hello", "world") // 已经提供初始值就不需要new s(0) // 调用时用的是()而不是原创 2015-11-04 06:02:15 · 786 阅读 · 0 评论 -
Chapter04 映射和元组
映射(哈希表) && 元组1. 构造映射映射是键值对偶的集合,映射只做查询。构造一个不可变的Map[String, Int]。 val scores = Map("Alice" -> 10, "Aaron" -> 20, "Bob" -> 13) // 这两种方法等价 val scores = Map(("Alice", 10), ("Aaron", 20), ("Bob", 1原创 2015-11-04 06:44:05 · 724 阅读 · 0 评论 -
Chapter05 类
1. 简单的类和无参方法类的定义及调用方法。所有类都是公有的。 class Counter { private var age = 0 // 必须初始化字段 def incre() { // 方法默认是公用的 age += 1 } def current() = age // 可以不带() }原创 2015-11-04 17:22:43 · 795 阅读 · 0 评论 -
Chapter06 对象
1. 单例对象scala中没有静态方法或静态变量,可以使用object达到同样的目的。 object Accounts { private var lastNumber = 0 def newUniqueNumber() = { lastNumber += 1; lastNumber } }对象的构造器在该对象第一次被使用时调用。scala对象可以用来实原创 2015-11-05 16:30:41 · 781 阅读 · 0 评论 -
Chapter07 包和引入
1. 包 package源文件目录和包之间并没有强制的关联关系。比如下面Manager.scala不一定要在./com/horstmann/impatient目录中。 // Manager.scala package com { package horstmann { package impatient { class Manager原创 2015-11-06 19:56:01 · 836 阅读 · 0 评论 -
Chapter08 继承
1. 扩展类扩展的方法是使用extends关键字 class Person { var name = "" } class Employee extends Person { var salary = 0.0 def description = "An employee with name " + name + " and salary "原创 2015-11-07 09:47:44 · 865 阅读 · 0 评论