• 速成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]
    }

    文学使思想充满血与肉,他比科学和哲学更能给予思想以巨大的明确性和说明性。
  • 相关阅读:
    Java静态分派与动态分派(二)
    重载和重写在jvm运行中的区别(一)
    startActivity启动过程分析(转)
    进程篇—进程整理(转)
    理解Android线程创建流程(转)
    Android进程绝杀技--forceStop(转)
    说说Android应用的persistent属性(转)
    Android四大组件与进程启动的关系(转)
    转: 安卓自动缩放布局,解决屏幕适配问题
    转: android apk 防止反编译技术(1~5连载)
  • 原文地址:https://www.cnblogs.com/zpsblog/p/11559933.html
Copyright © 2020-2023  润新知