zoukankan      html  css  js  c++  java
  • Scala:scala的一些简单操作命令

    Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。

    不太久之前编程语言还可以毫无疑意地归类成“命令式”或者“函数式”或者“面向对象”。Scala代表了一个新的语言品种,它抹平了这些人为划分的界限。

    根据David Rupp在博客中的说法,Scala可能是下一代Java。

    与只支持单继承的语言相比,Scala具有更广泛意义上的类重用。Scala允许定义新类的时候重用“一个类中新增的成员定义(即相较于其父类的差异之处)”。Scala称之为mixin类组合。

    Scala还包含了若干函数式语言的关键概念,包括高阶函数(Higher-Order Function)、局部套用(Currying)、嵌套函数(Nested Function)、序列解读(Sequence Comprehensions)等等。

     

    Scala是静态类型的,这就允许它提供泛型类、内部类、甚至多态方法(Polymorphic Method)。另外值得一提的是,Scala被特意设计成能够与Java和.NET互操作。

     

    Scala可以与Java互操作。它用scalac这个编译器把源文件编译成Java的class文件(即在JVM上运行的字节码)。你可以从Scala中调用所有的Java类库,也同样可以从Java应用程序中调用Scala的代码。

    下面我就为大家持续编写一些scala命令:

    scala下载地址:http://www.scala-lang.org/download/2.12.1.html

    首先我下载了scala,解压到D盘的ruanjian文件夹里,dos窗口运行:

    《变量》

    scala> var i=1
    i: Int = 1

    scala> var j:Int=2
    j: Int = 2

    scala> var s:String="abc"
    s: String = abc

    //var为变量;val为常量,不可变:

    scala> var i=2
    i: Int = 2

    scala> i=3
    i: Int = 3

    scala> val j=2
    j: Int = 2

    scala> j=3
    <console>:12: error: reassignment to val
           j=3
            ^

    《操作符重载》

    scala> var a=1
    a: Int = 1

    scala> var b=2
    b: Int = 2

    scala> a+b
    res0: Int = 3

    //加号是一个方法名
    scala> a.+(b)
    res1: Int = 3

    //for循环

    scala> var s="abc"
    s: String = abc

    scala> for(i<-s){println(i)}
    a
    b
    c

    《定义数组》

    scala> var arr=Array(1,2,3,4,5)
    arr: Array[Int] = Array(1, 2, 3, 4, 5)

    scala> for(i<-arr){println(i)}
    1
    2
    3
    4
    5

    //泛型用[ ]不用 < >

    scala> var arr=Array[String]("a","b","c")
    arr: Array[String] = Array(a, b, c)

    //方法,函数区别
    scala> var a=Array(1,2,3,4)
    a: Array[Int] = Array(1, 2, 3, 4)
    //将一个int数组中的每个值 +1 后再生成一个数组
    scala> a.map(_+1)   //原数组不动,生成新的数组
    res2: Array[Int] = Array(2, 3, 4, 5)

    //将偶数查出,再乘以100

    scala> a.filter(_%2==0)
    res3: Array[Int] = Array(2, 4)

    scala> a.filter(_%2==0).map(_*100)
    res4: Array[Int] = Array(200, 400)

    《定义方法》

    // 关键字def,方法名,参数,返回类型,返回结果
    scala> def main(){println("1,2,3")}
    main: ()Unit

    //Unit 相当于 void

    scala> def m(a:Int,b:Int):Int=a+b
    m: (a: Int, b: Int)Int

    《定义函数》
    scala> val k=(a:Int,b:Int)=>a+b
    k: (Int, Int) => Int = $$Lambda$1155/1157751940@1727aa28

    scala> k(2,3)
    res9: Int = 5

    //数组内每个元素*100

    scala> val k=Array(1,2,3)
    k: Array[Int] = Array(1, 2, 3)

    scala> k.map(_*100)
    res12: Array[Int] = Array(100, 200, 300)

    //函数与方法的区别,函数可以当作参数传入方法中

    scala> val k=(i:Int,j:Int)=>{i+j}
    k: (Int, Int) => Int = $$Lambda$1160/1891600388@20834041

    scala> k(2,3)
    res13: Int = 5

    //演化过程

    scala> val k=Array(1,2,3,4)
    k: Array[Int] = Array(1, 2, 3, 4)

    scala> arr.map(_+1)
    res19: Array[Int] = Array(2, 3, 4, 5)


    scala> k.map((i:Int)=>i+1)
    res16: Array[Int] = Array(2, 3, 4, 5)

    scala> k.map(i=>i+1)
    res17: Array[Int] = Array(2, 3, 4, 5)

    未完待续~~

    如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能 打赏我一杯咖啡【物质支持】,也可以点击下方的【好文要顶】按钮【精神支持】,因为这两种支持都是使我继续写作、分享的最大动力!

  • 相关阅读:
    随笔:金融的“游戏”规则——游戏世界的区块链喵与现实世界的金融科技
    js实现链表
    事件
    JQ操作DOM
    JQuery选择器
    AJAX
    file
    表单
    DOM
    window&navigator&screen&location
  • 原文地址:https://www.cnblogs.com/supiaopiao/p/7364866.html
Copyright © 2011-2022 走看看