1.初识scala

简介

  Scala(Scala Language的简称)语言是一种可以运行于JVM和.Net平台之上的通用编程语言,既可用于大规模应用程序开发,也可用于脚本编程。express

  Scala由Martin Odersk于2001开发,2004年开始程序运行在JVM与.Net平台之上,因为其简洁、优雅、类型安全的编程模式而受到关注。 编程

Scala创始人——Martin Odersk.jpg

  在Scala的建立之初,并无怎么引发重视。随着Apache Spark和Apache Kafka这样基于Scala的大数据框架的崛起,Scala逐步映入大数据从业者的眼帘。Scala的拥护者们认为Scala的主要优点是速度和它的表达性。安全

  目前使用scala的做为支撑公司开发语言的包括Foursquare和Twitter。2009年Twitter把大部分后台系统的开发语言从Ruby换成了Scala。闭包

特性

面向对象

  scala是一种纯面向对象的语言,每一个值都是对象。对象的数据类型以及行为由类和特质描述。并发

函数式编程

  Scala是一种函数式语言,其函数也能当成值来使用。Scala提供了轻量级的语法用以定义匿名函数,支持高阶函数,容许嵌套多层函数,并支持柯里化。框架

静态类型

  Scala具有类型系统,经过编译时检查,保证代码的安全性和一致性。类型系统具体支持如下特性:编程语言

  • 泛型类
  • 协变和逆变
  • 标注
  • 类型参数的上下限约束
  • 把类别和抽象类型做为对象成员
  • 复合类型
  • 引用本身时显式指定类型
  • 视图
  • 多态方法

扩展性

  Scala提供了许多独特的语言机制,能够以库的形式轻易无缝添加新的语言结构:ide

  • 任何方法可用做前缀或后缀操做符
  • 能够根据预期类型自动构造闭包

并发性

  Scala使用Actor做为其并发模型,Actor是相似线程的实体,经过邮箱发收消息。函数式编程

  Actor能够复用线程,所以能够在程序中可使用数百万个Actor,而线程只能建立数千个。在2.10以后的版本中,使用Akka做为其默认Actor实现。函数

编程方式

交互式编程

  交互式编程不须要建立脚本文件,能够经过如下命令调用。

$ scala
Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_31).
Type in expressions to have them evaluated.
Type :help for more information.

scala> 1 + 1
res0: Int = 2

scala> println("Hello World!")
Hello World!

scala>

脚本形式

 建立一个 HelloWorld.scala 的文件来执行代码

object HelloWorld {
   /* 这是个人第一个 Scala 程序
    * 如下程序将输出'Hello World!' 
    */
   def main(args: Array[String]) {
      println("Hello, world!") // 输出 Hello World
   }
}

接下来咱们使用 scalac 命令编译它:

$ scalac HelloWorld.scala 
$ ls
HelloWorld$.class    HelloWorld.scala
HelloWorld.class

使用如下命令来执行程序

$ scala HelloWorld
Hello, world!

基本语法

  • 区分大小写:Scala是大小写敏感的,这意味着标识Hello 和 hello在Scala中会有不一样的含义。

  • 类名:对于全部的类名的第一个字母要大写。若是须要使用几个单词来构成一个类的名称,每一个单词的第一个字母要大写。示例:class MyFirstScalaClass

  • 方法名称:全部的方法名称的第一个字母用小写。若是若干单词被用于构成方法的名称,则每一个单词的第一个字母应大写。示例:def myMethodName()

  • def main(args: Array[String]):Scala程序从main()方法开始处理,这是每个Scala程序的强制程序入口部分。

关键字

关键字.png

注释

  Scala 相似 Java 支持单行和多行注释。多行注释能够嵌套,但必须正确嵌套,一个注释开始符号对应一个结束符号。注释在 Scala 编译中会被忽略,实例以下:

object HelloWorld {
   /* 这是一个 Scala 程序
    * 这是一行注释
    * 这里演示了多行注释
    */
   def main(args: Array[String]) {
      // 输出 Hello World
      // 这是一个单行注释
      println("Hello, world!") 
   }
}

变量

  Scala中,使用关键词"var"声明变量,使用关键词 "val"声明常量。

val myVar : String = "Foo"
var myVar : String = "Too"

  在 Scala 中声明变量和常量不必定要指明数据类型,在没有指明数据类型的状况下,其数据类型是经过变量或常量的初始值推断出来的。

  因此,若是在没有指明数据类型的状况下声明变量或常量必需要给出其初始值,不然将会报错。

var myVar = 10;
val myVal = "Hello, Scala!";

声明多个变量

// xmax, ymax都声明为100
val xmax, ymax = 100
相关文章
相关标签/搜索