摘要:一、懒值 ### 懒值 ~~~ 当 val 被声明为lazy时(var不能声明为lazy), ~~~ 它的初始化将被推迟,直到首次对此取值,适用于初始化开销较大的场景。 ### 编程示例 ~~~ 先打印OK!,才报错 ~~~ # 语句立刻执行,发现文件不存在,报错 val file1 = scala
阅读全文
摘要:一、文件操作 ### 导入scala.io.Source后,可引用Source中的方法读取文本文件的内容 ~~~ 如果要将文件内容转数组,直接调用toArray。 import scala.io.{BufferedSource, Source} object FileDemo { def main(
阅读全文
摘要:一、函数 ### 函数 ~~~ 函数体中最后一句为返回值的话,可以将return 去掉; ~~~ 如果一个函数体只有一句代码,大括号可以去掉; ~~~ 如果一个函数没有返回值,其返回类型为Unit , 并且 “=” 号可以去掉,这样的函数被称为过程; ~~~ 可以不声明函数的返回类型,返回类型可通过
阅读全文
摘要:一、for 表达式 ### for表达式 ~~~ Scala中,for循环语法结构:for (i <- 表达式 / 集合),让变量 i遍历<-右边的表达式/集合的所有值。 ~~~ Scala为for循环提供了很多的特性,这些特性被称之为 for守卫式 或 for推导式。 ### 编程示例 ~~~ #
阅读全文
摘要:一、while 表达式 ### while表达式 ~~~ Scala提供了与 Java 类似的while和do...while循环。 ~~~ while语句的本身没有任何返回值类型,即while语句的返回结果是Unit类型的 () 。 ~~~ Scala内置控制结构特地去掉了 break 和 con
阅读全文
摘要:一、if 表达式 ### if表达式 ~~~ Scala中 if 表达式有返回值。 ~~~ 如果if 和 else 的返回值类型不一样,那么就返回两个返回值类型公共的父类。 ### 编程示例 ~~~ # if 语句有返回值 val x = 10 val s = if (x > 0) 1 else -
阅读全文
摘要:一、对象相等性 ### Java 中可以 == 来比较基本类型和引用类型: ~~~ 对基本类型而言,比较的是值的相等性 ~~~ 对引用类型而言,比较的是引用相等性,即两个变量是否指向JVM堆上的同个对象 ### Scala中,要比较两个基础类型的对象是否相等,可以使用 == 或 !=; 1 == 1
阅读全文
摘要:NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of
阅读全文
摘要:一、字符串插值器 ### Scala 提供了三种字符串插值器: ~~~ s 插值器,对内嵌的每个表达式求值,对求值结果调用toString,替换掉字面量中的那些表达式 ~~~ f 插值器,它除s插值器的功能外,还能进行格式化输出,在变量后用%指定输出格式,使用java.util.Formatter中
阅读全文
摘要:一、块表达式和赋值语句 ### 块表达式和赋值语句 ~~~ {} 块包含一系列表达式,其结果也是一个表达式,块中最后一个表达式的值就是块的值。 ~~~ 赋值语句返回Unit类型,代表没有值; ### 编程需求 val x1 = 1 val y1 = 1 val x2 = 0 val y2 = 0 v
阅读全文
摘要:一、输入和输出 ### 输入输出说明 ~~~ 通过readLine 从控制台读取一行输入。 ~~~ 如果要读取数字、Boolean或者字符, ~~~ 可以用readInt、readDouble、readByte、readShort、readLong、readFloat、readBoolean或者re
阅读全文
摘要:一、值与变量&自动类型推断 ### Scala当中的声明变量可以使用以下两种方式: ~~~ val,值 -- value,用val定义的变量,值是不可变的 ~~~ var,变量 -- variable,用var定义的变量,值是可变的 ### 在Scala中,鼓励使用val。大多数程序并不需要那么多的
阅读全文
摘要:一、操作符 ### 操作符 ~~~ Scala的算术操作符、位操作符与 Java中的效果一样的。 ~~~ 需要特别注意一点:Scala中的操作符都是方法 ~~~ 书写时推荐使用:a + b 、1 to 10这种代码风格。 ~~~ Scala 没有提供 ++、-- 操作符,但是可以使用+=、-= ##
阅读全文
摘要:一、类层次结构 ## 类层次结构 ~~~ # Scala中,所有的类,包括值类型和引用类型,都最终继承自一个统一的根类型Any。 ~~~ # Scala中定义了以下三个底层类: ~~~ Any是所有类型共同的根类型,Any是AnyRef和AnyVal的超类 ~~~ AnyRef是所有引用类型的超类
阅读全文
摘要:一、常用类型与字面量 数据类型 描述 Byte 8位有符号补码整数。数值区间为 -128 到 127 Short 16位有符号补码整数。数值区间为 -32768 到 32767 Int 32位有符号补码整数。数值区间为 -2147483648 到 2147483647 Long 64位有符号补码整数
阅读全文
摘要:一、基础语法 ### 基础语法规则: ~~~ # 区分大小写 ~~~ Scala语言对大小写敏感; ~~~ # 类名 ~~~ 对于所有的类名的第一个字母要大写。 ~~~ 如果需要使用几个单词来构成一个类名,每个单词的第一个字母要大写;比如:ListDemo ~~~ # 方法名 ~~~ 所有方法名的第
阅读全文
摘要:一、Scala基础 ### Scala语言概况:Scala语言起源 ~~~ 马丁·奥德斯基(Martin Odersky)是编译器及编程的狂热爱好者。 ~~~ 主流JVM的Javac编译器就是马丁·奥德斯基编写出来的,JDK5.0、JDK8.0的编译器就是他写的。 ~~~ 长时间的编程之后,他希望发
阅读全文
摘要:一、scala官网地址 ### Scala资源地址 ~~~ Scala官网:https://www.scala-lang.org/ ~~~ 下载Scala:Windows下安装Scala ~~~ 配置IDEA开发环境:REPL 二、windows下环境配置说明 ### 下载scala版本包 ~~~
阅读全文
摘要:一、Scala编程: ### 课程目标: ~~~ 熟练使用Scala进行Spark开发 ~~~ 为阅读Spark内核源码做准备 二、课程内容: ### 课程内容: ~~~ 第一部分 Scala基础 ~~~ 第二部分 控制结构和函数 ~~~ 第三部分 数组和元组 ~~~ 第四部分 类与对象 ~~~ 第
阅读全文
摘要:NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of
阅读全文