Scala--01--简介、环境搭建

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


1. Scala简介

1.1 Scala是什么?

  • Scala是一门现代的多范式语言,志在以简洁、优雅及类型安全的方式来表达常用的编程模型。它平滑地集成了面向对象和函数式语言的特性。
官网: https://scala-lang.org/
官方文档: https://docs.scala-lang.org/zh-cn/tour/tour-of-scala.html

1.2 Scala 发展历史

1.3 Scala 和 Java 关系

1.4 Scala 语言特点

Scala是面向对象的
  • 鉴于一切值都是对象,可以说Scala是一门纯面向对象的语言。对象的类型和行为是由类和特质来描述的。类可以由子类化和一种灵活的、基于mixin的组合机制(它可作为多重继承的简单替代方案)来扩展。
Scala是函数式的
  • 鉴于一切函数都是值,又可以说Scala是一门函数式语言。Scala为定义匿名函数提供了轻量级的语法,支持高阶函数,允许函数嵌套及柯里化。Scala的样例类和内置支持的模式匹配代数模型在许多函数式编程语言中都被使用。对于那些并非类的成员函数,单例对象提供了便捷的方式去组织它们。
  • 此外,通过对提取器的一般扩展,Scala的模式匹配概念使用了right-ignoring序列模式,自然地延伸到XML数据的处理。其中,for表达式对于构建查询很有用。这些特性使得Scala成为开发web服务等程序的理想选择。
Scala是静态类型的

Scala配备了一个拥有强大表达能力的类型系统,它可以静态地强制以安全、一致的方式使用抽象。典型来说,这个类型系统支持:

  • 泛型类
  • 型变注解
  • 上、下 类型边界
  • 作为对象成员的内部类和抽象类型
  • 复合类型
  • 显式类型的自我引用
  • 隐式参数和隐式转化
  • 多态方法
  • 类型推断让用户不需要标明额外的类型信息。这些特性结合起来为安全可重用的编程抽象以及类型安全的扩展提供了强大的基础。
Scala是可扩展的

在实践中,特定领域应用的发展往往需要特定领域的语言扩展。Scala提供了一种语言机制的独特组合方式,使得可以方便地以库的形式添加新的语言结构。

很多场景下,这些扩展可以不通过类似宏(macros)的元编程工具完成。例如:

  • 隐式类允许给已有的类型添加扩展方法。
  • 字符串插值可以让用户使用自定义的插值器进行扩展。
Scala的互操作性
  • Scala设计的目标是与流行的Java运行环境(JRE)进行良好的互操作,特别是与主流的面向对象编程语言------Java的互操作尽可能的平滑。Java的最新特性如函数接口(SAMs)、lambda表达式、注解及泛型类 在Scala中都有类似的实现。
  • 另外有些Java中并没有的特性,如缺省参数值和带名字的参数等,也是尽可能地向Java靠拢。Scala拥有类似Java的编译模型(独立编译、动态类加载),且允许使用已有的成千上万的高质量类库。

2. 环境搭建

2.1 首先确保 JDK1.8 安装成功

  • Scala需要依赖Java,访问这里查看特定Scala版本依赖的Java版本。

2.2 下载对应的 Scala 安装文件 scala-2.12.11.zip

2.3 配置 Scala 的环境变量

Windows中下载安装配置环境变量:

类似于java配置SCALA_HOME为安装目录。
添加%SCALA_HOME%\bin到path环境变量。

2.4 测试

println("hello,world!")

计算

相关推荐
北极无雪12 分钟前
Spring源码学习(拓展篇):SpringMVC中的异常处理
java·开发语言·数据库·学习·spring·servlet
猿小猴子23 分钟前
Python3 爬虫 中间人爬虫
开发语言·爬虫·python
lly20240631 分钟前
Swift 方法
开发语言
YONG823_API43 分钟前
电商平台数据批量获取自动抓取的实现方法分享(API)
java·大数据·开发语言·数据库·爬虫·网络爬虫
寂柒1 小时前
C++——模拟实现stack和queue
开发语言·c++·算法·list
Amagi.1 小时前
Spring中Bean的作用域
java·后端·spring
2402_857589361 小时前
Spring Boot新闻推荐系统设计与实现
java·spring boot·后端
J老熊1 小时前
Spring Cloud Netflix Eureka 注册中心讲解和案例示范
java·后端·spring·spring cloud·面试·eureka·系统架构
蜜桃小阿雯1 小时前
JAVA开源项目 旅游管理系统 计算机毕业设计
java·开发语言·jvm·spring cloud·开源·intellij-idea·旅游
Benaso1 小时前
Rust 快速入门(一)
开发语言·后端·rust