文章目录

  • 一、Scala简介
    • (一)Scala概述
    • (二)函数式编程
    • (三)Scala特性
      • 1、一切都是对象
      • 2、一切都是函数
      • 3、一切都是表达式
    • (四)在线运行Scala
  • 二、选择Scala版本
  • 三、Windows上安装Scala
    • (一)到Scala官网下载Scala
    • (二)安装Scala
    • (三)配置Scala环境变量
    • (四)测试Scala是否安装成功
      • 1、查看Scala版本
      • 2、启动Scala,执行语句

一、Scala简介

(一)Scala概述

  • Scala是Scalable Language的简写,是一门多范式的编程语言,由联邦理工学院洛桑(EPFL)的Martin Odersky于2001年基于Funnel的工作开始设计,设计初衷是要集成面向对象编程和函数式编程的各种特性。
  • Scala是一种将面向对象和函数式编程结合在一起的高级语言,旨在以简洁、优雅和类型安全的方式表达通用编程模式。Scala功能强大,不仅可以编写简单脚本,还可以构建大型系统。
  • Scala运行于Java平台,Scala程序会通过JVM被编译成class字节码文件,然后在操作系统上运行。其运行时候的性能通常与Java程序不分上下,并且Scala代码可以调用Java方法、继承Java类、实现Java接口等,几乎所有Scala代码都大量使用了Java类库。
  • Scala 是完全兼容Java的,其实Scala就是在Java语言的基础上增加了一层编码的 “壳”,让程序人员可以通过函数式编程的方式来开发程序。由于Scala最终被编译为.class,所以其实本质上还是Java,所以在Scala中可以任意的调用Java的API。好处显而易见:让Jva程序员可以更无障碍的转到Scala;让原先Java的API仍然可以在Scala中使用;公司中的Java平台不用替换就可以使用Scala。

(二)函数式编程

  • 函数式编程:将所有复杂的问题的解决,拆分为若干函数的处理。每一个函数可以去实现一部分功能,利用很多次函数的处理,最终解决问题。
  • 函数式编程相对于面向对象编程,更加抽象,好处是,代码可以非常简洁,更多采用常量而不是变量来解决问题,这样额外带来的好处:在线程并发时,可以减少甚至杜绝多线程并发安全问题,特别适合于应用在处理高并发场景、分布式场景下的问题。函数式编程可以使用高阶函数,函数是一等公民,可以更加灵活的进行程序的编写。
  • 函数式编程并不是面向对象编程的发展,而是另外一种解决问题的思路,两者之间也并没有绝对的好坏之分,在不同的场景中各有各的优缺点。

(三)Scala特性

  • 在很多地方Scala都很像Java,也是静态类型语言,但是比Java更为函数式编程,这句话主要从三句话就可以理解“一切都是对象”,“一切都是函数”以及“一切都是表达式”三方面理解。

1、一切都是对象

  • Scala里一切都是对象,这大概和Python很像,因为即便是数字1都有一系列的方法,所以我们可以调用1.toDoubleInt类型的1转换为Double类型的1

2、一切都是函数

  • 表现为可以重载操作符,跟Python很像,在一定程度上ScalaJavaPython生的孩子,只不过遗传基因比较大的卵子是Java提供的,而比较小的那颗精子则是Python提供的。

3、一切都是表达式

  • Scala里,一切都是表达式,即使像if(){}else{}这样的语句块也是有返回值的。

(四)在线运行Scala

  • 通过浏览器访问:Scala在线工具
  • 大家可以对照一下JavaHelloWorld程序,两者完全一一对应,相似度极高

二、选择Scala版本

  • 我们在ied虚拟机上安装的是Spark2.4.4,为了后续操作不出现任何匹配方面的问题,建议采用跟Spark版本匹配的Scala。

三、Windows上安装Scala

(一)到Scala官网下载Scala

  • Scala2.11.12下载网址:https://www.scala-lang.org/download/2.11.12.html
  • 安装包链接:https://downloads.lightbend.com/scala/2.11.12/scala-2.11.12.msi

  • 单击【scala-2.11.12.msi】超链接,将scala安装程序下载到本地

(二)安装Scala

  • 双击安装程序图标,进入安装向导,按提示进行操作,完成Scala的安装

(三)配置Scala环境变量

  • 设置Windows系统的环境变量
变量名 变量值
SCALA_HOME D:\Program Files\scala
Path %SCALA_HOME%\bin
  • 通常Scala安装完成后会自动将Scala的bin目录的路径添加到系统Path变量中。若Path变量中无该路径,则需要手动添加。

(四)测试Scala是否安装成功

1、查看Scala版本

  • 启动命令行窗口,执行scala -version命令,若能正确输出当前Scala版本信息,则说明安装成功

2、启动Scala,执行语句

  • 在命令行提示后输入scala,则会进入Scala的命令行模式,在此可以编写Scala表达式和程序

  • val - value:用于定义Scala常量

  • var - variable:用于定义Scala变量

  • 常量只能赋值一次,再次赋值是不允许的

  • Scala里val定义的变量相当于Java里用final定义的变量,其实都是常量,不能再给它赋值

【scala安装Windows】相关推荐

  1. Windows安装Scala:scala安装、idea的scala插件安装、helloworld案例

    目录 准备 安装配置scala idea安装Scala插件 离线安装 在线安装 hello world案例 准备 重要:安装好JDK1.8!!! 安装配置scala 1.下载Scala Install ...

  2. Scala安装及环境变量配置

    一.Windows环境下 待后续补充. 二.MacOS环境下 1. Scala官网下载MacOS使用的scala tgz格式压缩包,下载不了的话科学上网试一下,科学上网也下载不了可以试一下用迅雷. 2 ...

  3. Spark 第一讲 Scala安装配置

           介于学习大数据都有编程功底,便不在细究小操作,如有不懂可自行百度. 以 scala 2.12.11 为例,官网下载:http://www.scala-lang.org/download/ ...

  4. scala安装及环境配置

      Scala 是 Scalable Language 的简写,是一门多范式的编程语言,一种类似java的编程语言.scala设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. S ...

  5. linux终端中运行网银盾,Linux下使用Virtualbox安装 Windows 7 操作网银攻略

    作为一个Linux的爱好者,经过数次决心后放弃了双系统,只在自己的笔记本电脑里安装了Linux,坚持数月后发现网银是个问题,只能通过虚拟机来解决,现将安装使用中的要点同大家分享: 操作环境: 硬件:H ...

  6. windows 软件安装事件_苹果安装windows,报windows支持软件未能存储到所选驱动器

    今天去给一个IT外包客户维修电脑,前台的一台苹果电脑需要安装双系统,苹果电脑安装双系统对我们专业安装系统工程师来说,这不是很简单的嘛!客户问需要多长时间,信心满的说一到两个小时!客户说那你开始弄吧. ...

  7. 技巧:两部解决U盘安装windows 7

    第一步:准备一个4G的U盘并使用disk part 工具制作成引导盘 1.在运行中输入cmd 回车 2.在黑色的命令提示符界面中输入Diskpart 3.插入U盘 并输入List Disk查看 4.输 ...

  8. limbo可以运行linux,这次真的了,安卓手机可以安装 Windows 10 了

    原标题:这次真的了,安卓手机可以安装 Windows 10 了 上回雷锋哥给大家分享过「安卓可以体验 "Windows 10" 了」实际上就是一个第三方安卓桌面启动器模仿 Wind ...

  9. 卸载linux系统装win,如何在计算机上删除 Linux 并安装 Windows

    多个 IDE 驱动器 Device Boot Start End Blocks Id System /dev/hda1 * 1 500 4016218 83 Linux native (IDE har ...

最新文章

  1. 【Android RTMP】音频数据采集编码 ( FAAC 编码器编码 AAC 音频采样数据 | 封装 RTMP 音频数据头 | 设置 AAC 音频数据类型 | 封装 RTMP 数据包 )
  2. Android项目实战(十三):浅谈EventBus
  3. SAP Cloud for Customer的inscreen_dataflow处理方式
  4. 英才计划计算机潜质测评试题,员工能力与素质测评题库完整.doc
  5. 搭建Windows red5流媒体服务器详解
  6. IAR EWARM 破解方法
  7. 《初等数论》:整除性概念及其性质、质数与合数
  8. 正则Regester
  9. 机器学习系列(13)_PCA对图像数据集的降维_02
  10. 计算机上桌面不见了怎么找回,电脑桌面上的文件消失了怎么办,如何找回
  11. hitb-2017 1000levels writeup
  12. 图片批量转换为C语言数组工具
  13. 【powerBI_001】DAX函数之RELATED和RELATEDTABLE用法
  14. Scrapy学习笔记5——Spiders
  15. python倒数切片_python的切片操作
  16. 【2021年蓝桥省赛真题】赛前最后冲刺,省一我来啦
  17. TencentOS-Tiny在苹果MacOS初上手
  18. 关于GTP-4,这是14个被忽略的惊人细节!
  19. 天涯共此时--中秋赏古诗
  20. python语言 表白程序_python编写的GUI表白小程序

热门文章

  1. 【网络通信】select、poll、epoll
  2. 基于nuxt3的语雀文档批量导出
  3. Java开发常见英语词汇汇总
  4. scrapy爬取豆瓣电影
  5. 使用Java语言开发在线电影推荐网 电影推荐系统 豆瓣电影爬虫 基于用户、物品的协同过滤推荐算法实现 SSM(Spring+SpringMVC+Mybatis)开发框架 机器学习、人工智能、大数据开发
  6. 住建部:两城市出入口景观建设存在“形象工程”问题
  7. WSL中ubuntu安装mysql数据库
  8. 6种让机器人实现避障的方法
  9. 一本通 1086:角谷猜想
  10. 每日一题——删除排序链表中的重复项 II