Scala简介和安装

Scala简介和安装

    本篇文章为大家介绍以下Scala和Scala的安装以及IDE(eclipse)的使用,虽然这个基本环境没有什么技术含量,但是基本环境做不好,往后探讨再高深的东西,都是白扯,这里的所有Scala使用都是在window环境下的。

一、介绍

1、官方说明

    官方网址:http://www.scala-lang.org

    官网对scala的介绍:

    Scala既是面向对象的语言,也是面向函数的语言。scala可以为你在做大量代码重用和扩展是提供优雅的层次结构,并可以通过高阶函数来实现这样的目标。(高阶函数是函数式编程里的特性之一,允许函数作为参数传递,也允许函数作为返回值来返回)。

2、作者介绍

    Scala创始人Martin Odersky马丁·奥德斯基。

    Martin是EPFL(瑞士领先的技术大学,洛桑联邦理工学院)编程研究组的教授。他在整个职业生涯中一直不断追求着一个目标:让写程序这样一个基础工作变得高效、简单、且令人愉悦。

    他可能比世界上任何一个人写过更多的Java和Scala代码。他编写了javac,这是目前大部分Java程序员所使用的编译器。他也编写了Scala编译器scalac,可谓是Scala社区飞速发展的基石。他著有《Programming in Scala》一书,是最畅销的Scala书籍。他曾经就职于IBM研究院、耶鲁大学、卡尔斯鲁厄大学以及南澳大利亚大学。在此之前,他在瑞士苏黎世联邦理工学院追随Pascal创始人Niklaus Wirth学习,并于1989年获得博士学位。

    对于scala这门语言,有人把它当做Java的延伸版,有人把它当做JVM上的C++,有人觉得这是面向对象语言和面向函数语言的简单混合,有人觉得这就是Haskell,而且也还不如Haskell强。(纯的面向函数式编程语言)

    下图Martin Odersky马丁·奥德斯基(Scala的发明者,EPFL教授)在2016年夏天的Scala Day旧金山大会上发出了这张著名的玩笑照片:

    这个图片上的翻译是:“Scala唯一的作用是将人引向Haskell”。马丁·奥德斯基以此作为一个笑话,说他该把Scala改一下名字,叫做Hascalator,还请人设计了一个Logo。

3、Scala语言的特点

    Scala并不适于编程的初级课程。相反,它是为专业程序员定制的强力语言。

    1)它是一门现代编程语言,作者是Martin Odersky(javac之父),受到Java、Ruby、Smalltalk、ML、Haskell、Erlang等语言的影响。

    2)它即是一门面向对象(OOP)语言,每个变量都是一个对象,每个“操作符”都是方法。它同时也是一门函数式编程(FP)语言,可以将函数作为参数传递。你可以用OOP、FP,或者两者结合的方式编写代码。

    3)Scala代码通过scalac编译成.class文件,然后在JVM上运行,可以无缝使用已有的丰富的Java类库。即Scala的代码会编译成字节码,运行在Java虚拟机(JVM)上。

    4)接触语言的第一天你就能编出有趣的程序,但是这门语言很深奥,随着学习的深入,你会发现更新、更好的编写代码的方式。Scala会改变你对编程的看法。针对同一任务,可以有很多种不同的实现方式,并且可读性以及性能都有不一样的体现。

4、scala编程示例

Array(1,2,3,4)

    如何遍历数组中的元素,你应该这么做:

for(i<-Array(1,2,3,4))println(i)
Array(1,2,3,4).foreach{print(_)}

    如果尝试将这些元素转换为新的集合,应该使用for/yield表达式或者map方法:

for(i<-Array(1,2,3))yield i*2
//> res4: Array[Int] = Array(2, 4, 6)
Array(1,2,3).map(_*2)
//> res5: Array[Int] = Array(2, 4, 6)

    比如过滤出一个集合中元素小于4的集合,你可以使用filter方法:

val nums=List(1,2,3,4).filter(_<4)
//> nums  : List[Int] = List(1, 2, 3)

5、作者箴言

    Scala相较于Java而言,则是相信程序员的优化能力。马丁·奥德斯基说:“很多程序员会告诉我,他们一般会重构他们的Scala代码两三次,甚至三四次。”这听起来似乎非常的没有效率,但Scala就是这样的语言,每一次重构,代码的性能或者是可读性都会有极高的提升。

    Scala不把程序员当傻子。马丁·奥德斯基对于scalca的定位很清楚:“Scala现在是为聪明人创造的,以后也是为聪明人服务的。”

    Scala提供一整套工具,让程序员自由选择,无论是mutable数据结构,immutable数据结构,并行(parallel)数据结构。然后在这些选择中,Scala再针对他们进行算法层面的特殊优化。Scala相信程序员的聪明才智,让程序员自行选择合适的结构,以针对变化万千的任务需求,这点是Scala做得极好的地方。

    scala不是一门纯的函数式编程语言,所以有别纯函数式语言的区别之一是:scala提供变量和常量,而纯函数式编程语言是没有变量这概念的。

    之前就有人提到过,Scala新手和老手写出来的代码完全会呈现两种不同的风格,甚至新人根本不能读懂有经验的Scala程序员所写的代码,有人于是戏称:“太好了,这样的话我们部门的实习生就不能乱碰我写的代码啦!”但其实不仅风格不同,执行效率差距也一定是巨大的。

6、Scala语言的应用

    kafka:分布式消息队列,内部代码经常用来处理并发的问题,用scala可以大大简化其代码。

    spark:处理多线程场景方便,另外spark主要用作内存计算,经常要用来实现复杂的算法。利用scala这种函数式编程语言可以大大简化代码。

    注:本文仅列举一部分。

二、运行配置及使用

1、Scala Windows

1.安装步骤

    安装Scala的前提必须已经安装好了JDK,JDK的安装不做赘述。这里需要1.7版本及以上的。

1>双击运行安装

    到官网下载如下图的安装包即可。

    双击运行,基本就是傻瓜式的操作,这里就不多做赘述。

2>添加环境变量

    如果安装之后,看到系统环境变量的Path中已经有了scala的环境变量,那么就不需要配置。我在安装的时候,是这种情况。

    如果安装完成之后,查看环境变量Path中没有Scala的环境变量,那么就需要手动添加scala安装目录的bin目录路径到系统环境变量中。这个配置和JDK的配置是差不多的。如下图所示:

2.使用

    Scala基本是基于Java的,所有的使用的方法基本和Java相同,差别就在与一些命令不同,如下:

1>通过cmd

    通过cmd命令窗口,输入scala,查看Scala的版本信息,和Java的java -version一样的功能。如下图:

交互模式

    可以通过命令行直接输入scala命令,如下为打印字符到控制台:

编译模式

    也可以先编写***.scala文件,通过执行文件来执行命令,比如:

    先在e盘下创建一个hello.scala文件,文件中写入如下内容:

print("hello scala");

    然后通过cmd执行:

    也可以先生成.scala文件,再编译生成.class文件,再执行。

    在e盘下,创建Person.scala文件,内容如下:

object Person{
  def main(args: Array[String]): Unit = {
    println("hello scala hello world~")
  }
}

    在e盘路径下进入cmd命令窗口,然后执行:scalac Person.scala

    执行完后会发现在e盘下多出了对应的class文件。

    调用执行:scala Person

    看到这里你就会发现,Scala和Java的共通之处了。

2、使用IDE开发

    在网上看到很多人,为了在eclipse中安装Scala插件而发愁,这里我直接使用的就是带有Scala的eclipse,解压之后配置几个参数就可以使用。大家也可以下载这个版本的eclipse进行开发。

1.安装

    解压即可使用。

    如下图:打开eclipse的window选项的preferences,一般需要调的地方就是红框框的这几个选项。

    workspace:主要就是字符编码,调成自己需要的,我这里选用的是UTF-8,现在开发,一般也都是用的这个字符编码。

    Java-Compiler:检查jdk版本是否和自己安装的jdk版本一致。

    Java-installed JREs:检查jre版本是否和自己安装的一致,如果不一致,进行修改。

    Scala-Conmpiler:检查JVM的版本,想调成和自己jdk一样版本的也可以,使用默认1.6的也可以。

    如果大家有需要这个eclipse,可以在下方留言,或者私信我,我会将这个版本的jdk放到网络中,将链接贴到这里供大家下载使用。

2.使用

1>创建项目

    创建scala project,如下图:

2>创建类

工程创建完毕后,创建scala object,如下图:

3>编写代码

编写代码,如下图:

4>运行

运行得到结果。

下一篇:Scala语法介绍

转载于:https://my.oschina.net/u/3754001/blog/1807141

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值