Scala快速入门-1-声明变量

简介: 因为Spark是由Scala开发的,所以在开发Spark应用程序之前要对Scala语言学习。虽然Spark也支持Java、Python语言,但是作为一名Java程序猿,还是决定要学习Scala哈。Scala是运行在JVM上一门语言。开发效率非常高、语法丰富简洁,三两行Scala代码能搞定Java要写的一大坨代码。Scala的语法糖太甜~~

背景


  • 因为Spark是由Scala开发的,所以在开发Spark应用程序之前要对Scala语言学习。虽然Spark也支持Java、Python语言,但是作为一名Java程序猿,还是决定要学习Scala哈。
  • Scala是运行在JVM上一门语言。开发效率非常高、语法丰富简洁,三两行Scala代码能搞定Java要写的一大坨代码。
  • Scala的语法糖太甜~~

Scala特性


面向对象特性


  • Scala是一种纯面向对象的语言,每个值都是对象。

函数式编程


  • Scala也是一种函数式语言,其函数也能当成值来使用。Scala提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌套多层函数,并支持柯里化。Scala的case class及其内置的模式匹配相当于函数式编程语言中常用的代数类型。
  • 可以利用Scala的模式匹配,编写类似正则表达式的代码处理数据。

并发性


  • Scala使用Actor作为其并发模型,Actor是类似线程的实体,通过“邮箱”发收消息。Actor可以复用线程,因此可以在程序中可以使用数百万个Actor,而线程只能创建数千个。在2.10之后的版本中,使用Akka作为其默认Actor实现。

主要内容


  • 声明变量、常用类型
  • 控制结构(条件、循环、for)
  • 函数
  • 类与对象
  • 继承与特质
  • 集合
  • 模式匹配和样例类

声明变量、常用类型


  • scala代码会被编译成字节码,然后交给Java虚拟机执行。
  • 不强制指定变量的类型,编译器会推断出来。
scala> 8 * 5
res0: Int = 40
  • val定义的值无法改变它的内容。在Scala中,鼓励使用val。
scala> val answer = 8 * 5
answer: Int = 40
scala> answer = 10
<console>:8: error: reassignment to val
       answer = 10
  • 如果要声明其值可变的变量,用var。
scala> var counter = 0
counter: Int = 0
scala> counter = 10
counter: Int = 10
  • 变量或函数的类型总是写在变量或函数名称后面,与Java的习惯不同。
scala> val greeting : String = "Hello"
greeting: String = Hello
  • 不需要使用分号最后,仅当同一行代码中存在多条语句时才需要分号隔开。
  • 常用的数据类型与Java一样,Byte、Char、Short、Int、Long、Float、Double及Boolean,这些都是类。
  • 在基本类型和包装类型之间的转换是Scala编译器的工作。
  • +-*/%等操作符实际上是方法。
  • 对于BigInt和BigDecimal对象,可以以常规的方式使用数学操作符(但在Java中同样的操作要写成x.multiply(x))。
scala> val x : BigInt = 123
x: BigInt = 123
scala> x * x
res1: scala.math.BigInt = 15129
  • 不带参数的Scala方法通常不使用圆括号,一般没有参数且不改变当前对象的方法不带圆括号。
相关文章
|
1月前
|
存储 Java 编译器
Scala 变量
Scala 变量
30 3
|
6月前
|
Java 大数据 Scala
Scala快速入门--Scala环境搭建【Windows10】图解
Scala快速入门--Scala环境搭建【Windows10】图解
91 0
|
7月前
|
IDE Java 编译器
scala的两种变量类型 var 和 val
scala的两种变量类型 var 和 val
160 2
scala的两种变量类型 var 和 val
|
7月前
|
Java 编译器 API
Scala学习--day01变量与数据类型、运算符
Scala学习--day01变量与数据类型、运算符
|
7月前
|
存储 Scala
Scala变量和数据类型
Scala变量和数据类型
60 1
|
7月前
|
Java Shell API
Scala入门【变量和数据类型】
Scala入门【变量和数据类型】
|
消息中间件 Java 大数据
Scala快速入门
Scala快速入门
110 0
|
Java 编译器 Shell
scala中的变量、方法、函数
Scala是一门多范式的编程语言,一种类似java的编程语言,是可扩展语言,并集成面向对象编程和函数式编程的各种特性的混合功能编程语言。 Scala被编译后在Java虚拟机上运行。
214 0
scala中的变量、方法、函数
Scala快速入门-11-常用集合操作
所有的集合都扩展自Iterable特质 集合有三大类,分别为序列、集和映射 几乎所有集合类,Scala都同时提供了可变和不可变的版本 Scala列表要么是空的,要么拥有一头一尾,其中尾部本身又是一个表列 集是无先后次序的集合 用LinkedHashSet来保留插入顺序,或用SortedSet来按顺序进行迭代 +将元素添加到无先后次序的集合中;+:和:+向前或向后追加到序列;++将两个集合串接在一起;-和--移除元素 映射、折叠和拉链操作是很有用的技巧,用来将函数和操作应用到集合中的元素
|
安全 Java 编译器
Scala快速入门-10-模式匹配与样例类
mathch表达式是一个更好的switch,不会有穿透到下一个分支的问题 如果没有模式能够匹配,会抛出MatchError,可以用case _ 模式来避免,相当于Java中的default 模式可以包含一个随意定义的条件,称做守卫 可以匹配数组、列表、元组等模式,然后将匹配到不同部分绑定到变量 样例类及密封类的模式匹配 用Option来存放可能存在也可能不存在的值,比null更安全