速成scala

Scala是一门多范式的编程语言,一种类似java的编程语言 [1] ,设计初衷是实现可伸缩的语言 [2] 、并集成面向对象编程和函数式编程的各种特性。
特点: 多范式 类java 可伸缩 集成面向对象编程 函数式编程 命令式编程
面向对象:Scala中的每个值都是一个对象,包括基本数据类型(即布尔值、数字等)在内,连函数也是对象。另外,类可以被子类化,而且Scala还提供了基于mixin的组合(mixin-based composition)。
函数式编程:Scala还包含了若干函数式语言的关键概念,包括高阶函数(Higher-Order Function)、局部套用(Currying)、嵌套函数(Nested Function)、序列解读(Sequence Comprehensions)等等。
他可以使用现有的java类库

简单的一个实例认识一下sacla
object HelloWorld {
def main(args: Array[String]): Unit = {
println("Hello, world!")
}
}


类和对象的应用
import java.io._

class Point(val xc: Int, val yc: Int) {
var x: Int = xc
var y: Int = yc
def move(dx: Int, dy: Int) {
x = x + dx
y = y + dy
}
}

object Test {
def main(args: Array[String]) {
val point = new Point(10, 20)
point.move(10,1)
printPoint

def printPoint{
println ("x 的坐标点 : " + point.x);
println ("y 的坐标点 : " + point.y);
}
}
}

sacla方法与函数
Scala 有方法与函数,二者在语义上的区别很小。Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说在类中定义的函数即是方法
val定于函数和变量,def定义方法
例子
class Test{
def m(x: Int) = x + 3
val f = (x: Int) => x + 3
}

方法中的参数可以是一个函数
例子:
object MethodAndFunctionDemo {
//定义一个方法
//方法 m1 参数要求是一个函数,函数的参数必须是两个Int类型
//返回值类型也是Int类型
def m1(f:(Int,Int) => Int) : Int = {
f(2,6)
}

//定义一个函数f1,参数是两个Int类型,返回值是一个Int类型
val f1 = (x:Int,y:Int) => x + y
//再定义一个函数f2
val f2 = (m:Int,n:Int) => m * n

//main方法
def main(args: Array[String]): Unit = {
//调用m1方法,并传入f1函数
val r1 = m1(f1)

println(r1)

//调用m1方法,并传入f2函数
val r2 = m1(f2)
println(r2)
}
}

方法定义由一个 def 关键字开始,紧接着是可选的参数列表,一个冒号 : 和方法的返回类型,一个等于号 = ,最后是方法的主体。

Scala 方法定义格式如下


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

posted @ 2019-09-20 21:28  想不到8  阅读(306)  评论(0编辑  收藏  举报