Scala入门

简介

多范式的编程语言。Scala基于java之上。

特性

  • 纯面向对象语言
  • 函数式编程
  • 静态类型
  • 拓展性

基本语法

scala和java的最大区别:结尾的分号可选
scala程序是对象的集合,通过调用彼此的方法来实现消息传递。

大小写敏感
类名:第一个字母大写
方法名:驼峰
文件名:和类名完全匹配

scala是面向行的语言,语句可以用;结束或者换行符

包:

  1. package com.runoob
  2. package com.runoob {/* class */}

引用:

1
2
3
4
import java.awt.Color
import java.awt._
import java.awt.{Color, Font}
import java.util.{HashMap => _, _} // 引入了util包的所有成员,但是HashMap被隐藏了

数据类型

和Java相同的数据类型。

变量

var myVar : String = "foo"声明变量
val myVar : String = "foo"声明常量
var VariableName : DataType [= Initial Value]
数据类型不是必须的,可以通过初始值自动判断。

访问修饰符

privateprotectedpublic

方法和函数

函数是一个完整的对象,继承了Trait的类的对象。
val定义函数,def定义方法。

1
2
3
4
def functionName ([参数列表]) : [return type] = {
function body
return [expr]
}

如果没有返回值,可以返回Unit,类似java的void。

传名调用(call by name)

  • 传值调用(call by value)
    进入函数内部前,就已经把函数表达式的值计算完毕。
  • 传名调用(call by name)
    在函数内部进行参数表达式的值的计算。