查看原文
其他

Scala语言概述

孙亮亮 SpringForAll社区 2021-05-26

第1章、 Scala语言概述

==知识结构==

Scala这门课主要分为以下几个阶段进行学习。

  • 1、Scala语言概述

  • 2、Scala基础知识

  • 3、Scala数据结构

  • 4、Scala面向对象

  • 5、Scala函数式编程

1. scala语言概述

1.1、学习任务

1、了解Scala语言特点
2、学会配置Scala环境
3、配置IDE并用Scala写第一个程序

1.1、发展历史

Scala是Scalable Language的简写,是一门多范式的编程语言,

联邦理工学院洛桑的MartinOdersky于2001年基于Funnel的工作开始设计Scala。

Funnel是把函数式编程思想和Petri网相结合的一种编程语言。

Odersky先前的工作是Generic Java和javac(Sun Java编译器)。Java平台的Scala于2003年底/2004年初发布。.NET平台的Scala发布于2004年6月。该语言第二个版本,v2.0,发布于2006年3月。

截至2009年9月,最新版本是版本2.7.6 。Scala 2.8预计的特性包括重写的Scala类库(Scala collections library)、方法的命名参数和默认参数、包对象(package object),以及Continuation。

2009年4月,Twitter宣布他们已经把大部分后端程序从Ruby迁移到Scala,其余部分也打算要迁移。此外, Wattzon已经公开宣称,其整个平台都已经是基于Scala基础设施编写的。

1.2、大事记

  • 2001年,Scala 的设计在 EPFL 开始;

  • 2004年初,Java 版发布;

  • 2004年6⽉月,.NET 版发布;

  • 2006年3⽉月,Scala 2.0 Java 版发布;

  • 2011年5⽉月,Odersky和Jonas Bonér 创办 Typesafe;

  • 2012年,官⽅方停⽌止维护 Scala .NET 版;

  • 2014年,Scala 2.11.2 发布

  • 2019年,Scala 2.13.0 发布

2、Scala简介

2.1、编程范式

  • 2.1.1、命令式编程
    是一种描述电脑所需作出的行为的编程典范。几乎所有电脑的硬件工作都是指令式的;命令式编程关心解决问题的步骤,如JAVA,C等

  • 2.1.2、函数式编程
    它将电脑运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。函数编程语言最重要的基础是λ演算(lambda calculus)。而且λ演算的函数可以接受函数当作输入(引数)和输出(传出值)。函数式编程关心的是数据的映射,重视数据集之间的变换。

2.2、Scala语言特点

  • 1、多范式编程语言,兼具命令式与函数式

面向对象
一切值都是对象,从这一点来说,是一门纯面向对象的语言,对象的类型和行为由类和特质描述。这方面类似java。

函数式
在scala中,一切函数都是值,函数也可作为另一个函数的参数,因此scala是一门函数式语言。这一点又和python类似。因此我们说scala集成了java和python的特性

  • 2、基于JVM,可以和java无缝混编

  • 3、语言简洁优雅
    如果你写过java,就会对这一点体会深刻,scala几行代码就能搞定java一个很复杂的操作,就代码量而已,scala会少很多

  • 4、Scala商业成功
    Spark,Kafka,因此Scala广泛应用于大数据领域

2.3、scala生态圈

我们这里scala主要是以大数据应用领域为基础的,因此我们的课程主要包括scala的基础语法以及面向对象和函数式编程等,关于其他的不在我们这么课计划中。

3、环境配置

此处的版本为,JDK-1.8.0_211,Scala-2.11.12

==切记不要装最新版本的,后期会出现很多版本兼容的问题==

jdk环境配置-win版

Scala依赖JDK环境,首先确保本机已安装JDK相关环境

3.1、下载

3.1.1、win版配置

下载地址

在此处下载响应的版本

img

按照提示一步一步安装,同JDK。

3.1.2、环境变量配置

右击我的电脑,单击"属性",进入如图所示页面。下面开始配置环境变量,右击【我的电脑】--【属性】--【高级系统设置】--【环境变量】,如图:

在变量命中输入SCALA_HOME,变量值中输入Scala的安装目录。

设置Path变量

[图片上传失败…(image-940d4f-1560333533701)]

环境设置好了之后输入,调出cmd,输入scala,成功可以看到如下信息

3.1.2、mac版配置

mac版安装同上,下载相应的mac版本,按照提示一路安装即可。

mac版本的配置

配置SCALA_HOME,然后在Path中添加SCALA_HOME即可

1export SCALA_HOME=/Users/sunliangliang/Documents/develop-tools/scala-2.11.12
2PATH=$JAVA_HOME/bin:$SCALA_HOME/bin:$PATH:.

安装成功后如下图所示

4、第一个Scala程序

4.1、交互式环境

我们看到可以直接打印输出,也可以直接计算。

4.2、IDEA和Scala

1、idea安装Scala插件

Prefrences->Plugins->search("scala"),安装即可


  • 2、idea配置Scala SDK
    第一次配置的时候需要配置SDK

Browse找到Scala的安装目录,选中SDK配置成功。

  • 3、创建项目

  • 4、第一个demo

1package com.tedu.fast
2
3/**
4  * Describe: 
5  *
6  * @Author sunliang
7  * @Since 2019/06/12
8  */

9object Helloworld {
10
11  def main(args: Array[String]): Unit = {
12    print("Hello world")
13  }
14}

代码结构如下


至此我们就完成了IDEA和SCALA的整合

==注意事项==


类型Kind选择的是Object不是Class,(Object可以编译有main函数入口,因此可以在IDEA中直接Run)



限时扫码关注领取600页+Spring官方教程小书


  1. 限时3周免费下载

  2. 长按识别二维码关注SpringForAll社区公众号

  3. 在公众号回复“Spring”或者"spring"即可获取



点击原文阅读更多


推荐:给大家推荐8个SpringBoot精选项目

上一篇:Spring源码(七)-IOC中的那些设计模式我们来一起捋捋


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存