Scala入门教程 (一)

4,097

Scala入门教程

[TOC]

Scala是神马?

  • 说的正式点,Scala是一种多范式的编程语言,其将面向对象编程与函数式编程的特性结合了起来。并且Scala同Java一样都运行在Java虚拟机之上,经过编译之后都生成的是class字节码文件,所以scala同样具有跨平台的特性,可以做到一次编写,到处运行。
  • 说的通俗点,Scala是一种很有逼格的语言,具有优雅,简洁,速度等优点,对于猿圈的我们来说,还有什么比装逼更能吸引我们的呢?在深入了解后就会发现,很多在Java中的遗憾在scala中都有很好的实现。大名鼎鼎的Spark底层就是用scala实现的,如果你想好好深入了解这个大数据框架,那么一定要好好学习这门语言。

Scala的安装

​ 前面已经说到过,Scala是运行在JVM上,所以要想运行我们的程序,首先需要确保我们的电脑上已经安装好了JDK,这个直接在oracle的官网上就有,现在最新的已经是JDK9了。

​ 安装完运行环境,接下来就是安装Scala的编译器了,Scala的编译器将Scala源码编译为class字节码文件,然后就像运行Java的字节码那样在JVM中运行。

  • Windows上安装Scala编译器

    直接登陆scala的官网进入下载,下载windows的安装包

    image.png
    image.png

  • 在Linux中安装scala

    下载上面截图中scala-sources-2.12.4.tar.gz的那个,解压到Linux中你喜欢的目录

    tar -zxvf scala-2.10.6.tgz -C /usr/share/local

    配置环境变量,用vim编辑器编辑/etc/profile文件

    export JAVA_HOME=/usr/share/local/jdk
    export PATH=$PATH:$JAVA_HOME/bin:/usr/share/local/scala/bin

    编辑保存后不要忘了source一下,使环境变量立即生效

    source  /etc/profile

写个HelloWorld测试下吧

  • 按照国际惯例,学习任何一门语言首先都要写个HelloWorld,就像新店开张的剪彩仪式一样。我们先新建一个Hello.scala文件。内容如下:

    object Hello{
        def main(args: Array[String]) {
            println("Hello World!")
        }
    }

    类似于Java的main函数,不过语法看上去有点区别,细心的小伙伴也许会发现,这里每句代码结束居然没有;分号结束,这就是Scala的极简原则,能少写绝不多谢,当然写了也不会有问题的。

    编译源文件:

    scalac ./Hello.scala

    这时候该目录下就会生成Hello.class文件,接下类运行:

    scala Hello

    image.png
    image.png

    出现如下结果就说明运行成功了。接下来就一起来打开Scala的异世界大门吧。

  • 相信对Java有一定了解的小伙伴都了解class文件是可以被反编译为Java代码的,那么Scala生成的class文件可不可以反编译为Java文件呢?当然是可以的呀:

    import scala.reflect.ScalaSignature;
    public final class Hello
    {
      public static void main(String[] paramArrayOfString)
      {
        Hello..MODULE$.main(paramArrayOfString);
      }
    }

    上面就是通过Decompiler反编译后的结果,所以这是没问题的,事实上scala和java几乎是可以无缝对接的,在scala中可以直接引用Java中的对象,所以在scala是可以使用Java非常丰富的第三方框架的,这里之后也会介绍的。

Scala的开发工具

  • 工欲善其事,必先利其器。要想开发一个大型项目的话,我们总不能一直在文本编辑器中写代码吧(大佬的话可以忽略这个),一般我们习惯在IDEA中开发,在安装完IDEA之后,再安装一个scala的插件就可以了,简单方便快捷。

    image.png
    image.png

    插件的名字就叫scala,直接搜索并安装就ok了。

    接下来就像刚才那样写一个HelloWorld就Ok了:

    image.png
    image.png

总结

​ Ok,入门教程就差不多了。之后就详细介绍 Scala的更多基础以及高级用法。感兴趣的小伙伴可以关注我的微信公众号,会在第一时间更新。

img
img