【Scala---01】Scala简介与环境部署『 Scala简介 | 函数式编程简介 | Scala VS Java | 安装与部署 | 查看源码』

本文介绍了Scala作为基于Java的高级语言,其函数式编程特性,如值传递和无副作用,以及它与Java面向对象的对比。文章还讨论了Scala在大数据生态中的应用,以及如何在生产环境中安装和部署Scala项目。
摘要由CSDN通过智能技术生成

1. Scala简介

Scala是由于Spark的流行而兴起的。Scala是一个静态的的、函数式的、面向对象编程的语言。静态的指在编译时就知道变量的类型,而不是在运行时才知道。但是Scala并不期望你提供冗余的类型信息,而是可以自动推断,这就是的Scala使用起来感觉像是动态语言,但实际上是静态语言。

关于Scala有几个常识需要知道:

  1. Scala使用Java编写的,是比Java更高级的语言,可以看做是对Java的进一步封装,更加简洁,代码量约是Java的一半。
  2. Scala是编译性语言,编译后也得到.class文件(不会得到.java文件),Scala是运行在JVM上的,因此 想运行scala代码,可以不装scala JDK 但是必须装 java JDK。

    Java使用javac file_name.java命令将java文件编译为class文件;Scala使用scalas file_name.scala命令将scala文件编译为class文件。

  3. 继承了Java 的可跨平台特性。
  4. 可以直接在Scala中编写Java代码。

现在大数据生态的语言:

在这里插入图片描述

2. 函数式编程简介

  1. Scala是面向函数式编程。具体而言,表现为四个方面 ① 函数可以作为值传递;② 函数可以作为参数传递;③ 函数可以作为返回值传递;④ 可以被直接调用。

    高阶函数:指允许函数嵌套。

  2. 函数式编程没有副作用,即变量一经赋值,就不变。
  3. 引用透明。指函数的运行不依赖于外部变量或状态,只依赖于输入参数,任何时候只要输入的参数相同,那么引用函数得到的返回值永远相同。Java中查看一个函数功能,往往要查引用的类,类中还有引用类…,需要一直点进去,引用不够透明。

3. Scala VS Java

  1. Scala支持面向函数式编程的,而Java不支持,这是两者最大的区别。

    Scala的函数式编程是借鉴的Python优点,为什么不使用Python开发

  2. Java是面向对象的用于解决通用问题,Scala是专注于解决数据统一计算。抽象来说,无论解什么数学题,首先得学好加减乘除,而解决线性代数就得学好矩阵相关公式,学高等数学就得学好微积分相关公式,但矩阵与微积分本质上还是由加减乘除组合而来的,只不过是矩阵相关方式和微积分相关方式是已解决的封装好的公式,直接使用就行。具体而言,就是Scala比Java多一些数据统计的方法,比如 group by等等。
  3. Scala也拥有Java高并发、可移植、运行快的特点。一次编译成class文件,多次运行。

4. 安装与部署

Scala包里面没有java jdk,因此在安装Scala之前需要先安装Java JDK

4.1 Scala安装

(1) linux环境安装

// 1. 在Scala官网下载对应的包,这里我下载`scala-2.12.16.tgz`。上传到linux机器/public/software/bigdata/scala-2.12.16.tgz
// 2. 解压
tar -zxvf /public/software/bigdata/scala-2.12.16.tgz -C /usr/local
// 3. 创建软连接,因为scala-2.12.16的这个后缀太麻烦
cd /usr/local/
ln -s scala-2.12.16 scala
// 4. 修改环境变量
vim /etc/profile
//   在末尾加上
export SCALA_HOME=/usr/local/scala
export PATH=$PATH:$SCALA_HOME/bin    // 全局都识别  
// 5. 让环境变量生效
source /etc/profile
// 6. 查看版本
scala -version

(2) Window环境安装

和linux安装类型,后续补充具体步骤

4.2 IDEA创建并编写Scala项目

(1) 安装插件

  1. 安装scala插件
    在这里插入图片描述

  2. 同理安装maven插件,但IDEA-2021之后都自带maven插件了。
    在这里插入图片描述

    1. 介绍一下maven和idea关系:
      在这里插入图片描述
    2. 如何maven使用插件还是本地maven (默认使用的是maven插件)
      在这里插入图片描述
  3. 将IDEA与本地scala关联:

    1. 找到本地scala并关联
      在这里插入图片描述
    2. 重启IDEA.
    3. 项目中创建文件时,能够创建scala文件,说明IDEA关联Scala成功!

(2) 创建项目

  1. 创建Java项目,不是scala项目
    在这里插入图片描述

  2. 创建scala文件夹,并将文件夹标记为【源文件夹】,这样编写的代码能够被IDEA检测到,方便写代码。同时打包时会被打包。
    在这里插入图片描述

    比如:
    在这里插入图片描述
    解压jar包:
    在这里插入图片描述
    结果为:
    在这里插入图片描述

  3. 将IDEA与本地Scala联系起来
    在这里插入图片描述

  4. 创建.scala文件
    在这里插入图片描述

5. 查看源码

  1. 查看源码,需要在pom.xml中导入对应版本的scala依赖jar包:

    <dependencies>
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>2.12.10</version>
        </dependency>
    </dependencies>
    
  2. 点击刷新可以看到jar包被导入进来了
    在这里插入图片描述

  3. 访问任意一个函数的源码,并下载
    在这里插入图片描述

  4. 下载完后,再重新按ctrl + 鼠标左键就可以看到具体的函数了
    在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ElegantCodingWH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值