zoukankan      html  css  js  c++  java
  • 一起学scala--基础

    scala基础

    安装scala(不推荐使用最新版本,2.11.x够用了)


    这里我选择2.11.12版本,在下载页面往下拉,选择scala-2.11.12.msi(windows用户),msi安装比较简单,一直点点就行。如果下载速度慢,建议用迅雷。
    安装完后,配置环境变量,如图:
    

    编辑环境变量

    • 在命令行中输入scala -version验证是否安装成功。

    声明值和变量

    安装成功后在命令行中输入scala并回车就能打开scala的解释器。每次输入命令,解释器都会显示出结果。
    

    scala命令行操作

    正如你所看到的,解释器会给结果自动命名和显示结果类型,并且在后续操作中可以继续使用。而解释器这些操作过程也被称为“读取-求值-打印” 循环(read-eval-print-loop)即REPL,后面为了方便表示,我们就称解释器为REPL。
    你还能自定义自己的名称:
    
    scala> val ans = 8*5+2
    ans:Int = 42
    
    这里已val定义的值实际上是个常量,相当于java中的final,值不可改变。定义变量使用var。
    一般情况下,推荐使用val,除非你真的需要改变它的内容。在定义的时候你还可以指定变量的类型,如:
    
    var ans:Int = 8*5+2
    
    说明:在scala中,变量和函数的类型总是写在变量和函数的名称后面。
    

    常用类型

    scala有七种数值类型:Byte,Char,Short,Int,Long,Float,Double和Boolean类型。scala并没有明确区分基本类型和引用类型,就都像java中的包装类,可以直接调用方法。
    
    1.toString() // "1"
    99.99.toInt() // 99
    99.toChar() // 'c'
    // 在scala中','逗号可以省略,括号内没有参数可以不写括号
    1 toString //不建议哈
    1.toString //这个就可以
    // 在scala中有隐式转换,比如:String对象被隐式转换成StringOps对象,追加上百种字符串操作。
    "hello".intersect("world") //返回 "lo"
    // 同样地,scala还提供了RichInt,RichDouble,RichChar等,为原来的类型增加所不具备的便捷方法。
    1.to(3) // 1,2,3
    1.until(3) // 1,2
    

    通配符_

    在scala中,_字符是通配符,类似java的*
    
    val a:Int=_ // a=0
    val b:Double=_ // b=0.0
    val c:String=_ //c=null
    val d = _ // 报错
    

    伴生对象

    在scala中,类都有一个伴生对象,其方法就跟java中的静态方法一样,类名+方法名就可以直接调用。
    

    apply方法

    在scala中,我们读取字符串中的一个字符是这样的s(i)。
    
    var s = "hello"
    println(s(4)) // 'o'
    
    而在java中是这样的:
    
    String s = "hello";
    char c = s.charAt(4) // 'o'
    
    其实scala之所以能这样获取字符串中的字符,是因为StringOps里面的apply方法。
    
    s(i) 相当于 s.apply(i) //apply可以直接省略。
    
    很多类的伴生对象都实现了apply方法,所以我们可以直接  对象名()  实现apply方法。
    
    val array:Array[Int] = Array(1,2,3) // 使用apply直接创建数组。
    

    最后

    码字不易,喜欢的点个赞呗。

  • 相关阅读:
    32-Ubuntu-用户权限-03-修改文件权限
    31-Ubuntu-用户权限-02-ls输出信息介绍
    hdu2084 数塔
    hdu 1058 humble number
    HDU_2050 折线分割平面
    HDU_1030 Delta-wave 常数时间
    HDU_1021 Fibonacci Again 一些推论
    Gated Recurrent Unit(GRU)
    循环神经网络模型
    Bellman-Ford algorithm
  • 原文地址:https://www.cnblogs.com/yoletPig/p/12907688.html
Copyright © 2011-2022 走看看