ITPub博客

首页 > 数据库 > 数据库开发技术 > Scala快速入门-1-声明变量

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

原创 数据库开发技术 作者:HelloTech技术派 时间:2017-12-30 07:51:28 0 删除 编辑

背景

  • 因为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虚拟机执行。

  • 不强制指定变量的类型,编译器会推断出来。

  1. scala> 8 * 5

  2. res0: Int = 40

  • val定义的值无法改变它的内容。在Scala中,鼓励使用val。

  1. scala> val answer = 8 * 5

  2. answer: Int = 40

  3. scala> answer = 10

  4. <console>:8: error: reassignment to val

  5.       answer = 10

  • 如果要声明其值可变的变量,用var。

  1. scala> var counter = 0

  2. counter: Int = 0

  3. scala> counter = 10

  4. counter: Int = 10

  • 变量或函数的类型总是写在变量或函数名称后面,与Java的习惯不同。

  1. scala> val greeting : String = "Hello"

  2. greeting: String = Hello

  • 不需要使用分号最后,仅当同一行代码中存在多条语句时才需要分号隔开。

  • 常用的数据类型与Java一样,Byte、Char、Short、Int、Long、Float、Double及Boolean,这些都是类。

  • 在基本类型和包装类型之间的转换是Scala编译器的工作。

  • +-*/%等操作符实际上是方法。

  • 对于BigInt和BigDecimal对象,可以以常规的方式使用数学操作符(但在Java中同样的操作要写成x.multiply(x))。

  1. scala> val x : BigInt = 123

  2. x: BigInt = 123

  3. scala> x * x

  4. res1: scala.math.BigInt = 15129

  • 不带参数的Scala方法通常不使用圆括号,一般没有参数且不改变当前对象的方法不带圆括号。


敬请期待下一篇~


原文作者:HelloTech技术派;如有侵权,请联系管理员删除。

上一篇: 2017内容汇总
请登录后发表评论 登录
全部评论

注册时间:2017-12-05

  • 博文量
    181
  • 访问量
    73730