Scala--基础入门

  这是Scala系列的第一篇博客,后面会持续更新Scala系列以及Spark等,希望和大家一起学习和探讨。

  • 本篇博客主要讲解:
  1. Scala的简介和安装
  2. Scala的变量定义
  3. Scala的变量类型
  4. Scala的脚本
  5. 以及扩展在Intellij IDEA上安装Scala插件。

简介/安装

Scala,是一门运行在JVM上的函数式面向对象语言,可以很好的兼容java。函数式面向对象语言,也就是说既有像java面向对象语言的特性又有类似于Python函数式语言的特性。下面让我们一起来看看Scala的环境搭建:

  1. 安装配置

    1、首先安装一下JDK(略)
    2、安装scala,官方下载:http://www.scala-lang.org/download/2.11.0.html
    3、配置好环境变量(略)

  2. 配置好后,打开cmd命令窗口,输入scala就进入了友好的scala的”Repl“界面,:

    1
    2
    3
    4
    C:\Users\Administrator>scala
    Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_80).
    Type in expressions to have them evaluated.
    Type :help for more information.
  3. 在“Repl”界面我们就可以进行一些简单的计算和操作。每一次都会返回一个结果,如下图所示:

    1
    2
    3
    4
    5
    6
    7
    8
    scala> 7+12                             #数字相加返回int
    res0: Int = 19

    scala> res0*3.5 #自动识别结果为Double
    res1: Double = 66.5

    scala> res1+" Hello Word " #自动识别结果为String
    res2: String = "66.5 Hello Word "
  • 进行简单计算,7+12:res0:Int=19(该信息体现了参数的定义,只是省略了val)。然后我们就可以通过参数名res0使用该值,例如:res0*0.35,如上图所示。

    res0 ( res1, res2, … )   #为返回值名称
    Int ( Double, String, … )   #为返回值类型

变量定义

  • 变量定义:val|var 参数名:参数类型=参数值

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    scala> var msg3:String = "Hello"        #定义一个变量
    msg3: String = Hello

    scala> val msg4 = "Word"
    msg4: String = Word

    scala> msg4 = "Word!" #val的变量不能被改变
    <console>:8: error: reassignment to val
    msg4 = "Word!"
    ^

    scala> println(msg3+msg4)
    HelloWord

    scala> println(msg3+ " " +msg4)
    Hello Word
  • Scala有两种声明变量的方式varval

  1. val,类是于Java中的final变量,一旦初始化就不能修改,例如上图中msg4。
  2. var,声明的变量就可以多次被赋值,scala建议声明为val。
  3. 在声明变量时也可以不指定类型,scala自己会进行类型推断,判断出“Word”为String类型(java.lang.String)。

  4. 懒值 ,当val被声明为lazy时。它的初始化将被推迟,直到我们首次使用它,eg:

    lazy val words = scala.io.Source.fromFile(“/use/word”).mkString

变量类型

  1. 变量类型scala中有7种数值类型ByteCharShortIntLongFloatDoubleBoolean,这类用法和java的基本类型类似。只是scala这些类型是类,它不区分引用类型和基本类型;

  2. 扩展类:对于字符串它使用的java.lang.String,但scala也有自己的扩展StringOps类;其他类型的一些扩展比如,RichInt、RichDouble、RichChar,还有java.math.BigIng、java.math.BigDecimal等;

  3. 基本类型和包装类型之间的转换:这个scala编译器会自动完成,eg:创建一个Int[]数组,最后在虚拟机中得到的是int[];

  4. 数值类型之间的转换:在scala中,数值类型之间的转换不是强制类型转换而是使用方法,eg:toInttoDoubletoChar等

    1
    2
    3
    4
    5
    6
    7
    8
    scala> val a:Int = 55
    a: Int = 55

    scala> a.toChar
    res3: Char = 7

    scala> a.toString
    res4: String = 55

scala脚本

  • 脚本,就是一些简短的命令组合放在一个文件中,运行脚本就是按顺序执行文件中的语句。比如我们把这两行代码写到script.scala文件中:

  • 然后运行:

args(n) , 就可以接受到后面的参数(这个和java很像,java中main方法args[]同样能接收到)(注意:数组java是”[]”而scala中是”()”)。

扩展-Intellij使用

这里顺便讲一下使用Intellij IDEA开发scala:

下载安装Intellij IDEA
安装Intellij的scala插件

菜单File—>Settings

输入scala,然后点击右边的install plugin

安装好插件后重启就可以新建项目了,File—>New—>Project,选择scala:

输入项目名,选择项目地址和JDK和scala的SDK,Finish

右键创建一个scala class,我们这里选择为Object

写一个简单的例子,测试一下,okay!

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器