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

news2025/1/16 18:40:15

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

文章目录

  • 1. Scala简介
    • 1.1 Scala是什么?
        • 官网: [https://scala-lang.org/](https://scala-lang.org/)
        • 官方文档: [https://docs.scala-lang.org/zh-cn/tour/tour-of-scala.html](https://docs.scala-lang.org/zh-cn/tour/tour-of-scala.html)
    • 1.2 Scala 发展历史
    • 1.3 Scala 和 Java 关系
    • 1.4 Scala 语言特点
        • Scala是面向对象的
        • Scala是函数式的
        • Scala是静态类型的
        • Scala是可扩展的
        • Scala的互操作性
  • 2. 环境搭建
    • 2.1 首先确保 JDK1.8 安装成功
    • 2.2 下载对应的 Scala 安装文件 scala-2.12.11.zip
    • 2.3 配置 Scala 的环境变量
        • 类似于java配置==SCALA_HOME==为安装目录。
        • ==添加%SCALA_HOME%\bin==到path环境变量。
    • 2.4 测试
        • println("hello,world!")


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!”)

在这里插入图片描述
计算
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1519084.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity中的网格创建和曲线变形

Unity中的网格创建和曲线变形 3D贝塞尔曲线变形贝塞尔曲线基础线性公式二次方公式三次方公式 Unity 实现3D贝塞尔曲线变形准备工作脚本概述变量定义 变量解析函数解析 获取所有子节点GetAllChildren 获取所有子节点UpdateBezierBend 控制点更新CalculateBezier Bezier 曲线公式…

解锁基于LLMS的咒语:通过上下文学习重新思考对齐

一、写作动机: 最近的一项研究,LIMA,表明仅使用1K个示例进行SFT也可以实现显著的对齐性能,这表明对齐微调的效果可能是“表面的”。(知识和推理能力来源于预训练,而不是必须通过对齐微调获得的。&#xff…

掌握未来数据管理:Tidb数据库学习网站全攻略!

介绍:TiDB是一个开源的分布式关系型数据库,由PingCAP公司设计和研发。以下是对TiDB的详细介绍: HTAP支持:TiDB能够同时处理在线事务处理(OLTP)和在线分析处理(OLAP),这使…

50、东北大学、阿尔伯塔大学:Hi-GCN从2个层次角度进行图学习,用来诊断脑部疾病[你这和MVS-GCN套娃呢?]

本文由东北大学医学图像智能计算教育部重点实验室&#xff0c;加拿大阿尔伯塔大学于2020年10.24日发表于<Computers in Biology and Medicine> JCR\IF: Q1\7.7 Abstract&#xff1a; 目的:近年来&#xff0c;脑连接网络已被用于神经系统疾病的分类&#xff0c;如自闭症…

数据仓库的设计开发应用(二)

目录 四、数据仓库的设计&#xff08;一&#xff09;需求分析&#xff08;二&#xff09;概念设计&#xff08;三&#xff09;逻辑设计&#xff08;四&#xff09;物理设计 四、数据仓库的设计 数据仓库的设计包括需求分析、概念设计、逻辑设计和物理设计四个阶段&#xff0c;其…

计算机毕业设计-基于大数据分析的服装定制网的设计与实现

概要 人民的日常生活离不开“衣食住行”&#xff0c;四者之中“食住行”发展迅猛&#xff0c;突飞猛进的发展推动了产业的升级更新。而与之形成鲜明对比的是&#xff0c;服装行业作为传统古老的行业&#xff0c;因为产业结构特征、个性化需求等问题&#xff0c;难以出现推动行业…

算法第二十七天-猜数字游戏

猜数字游戏 题目要求 解体思路 有多少位属于数字和确切位置都猜对了&#xff1a;统计 s e c r e t [ i ] g u e s s [ i ] secret[i]guess[i] secret[i]guess[i]的个数。 有多少位属于数字猜对了但是位置不对&#xff1a;用两个数组&#xff08;哈希表&#xff09;分别统计…

C#实现哈希查找算法​

C#实现哈希查找算法 下面是一个简单的C#代码示例&#xff0c;实现了哈希查找算法&#xff1a; using System; using System.Collections.Generic;class HashSearch {// 哈希查找函数static int HashSearchFunction(int[] array, int target){// 创建一个Dictionary用于存储数…

this是什么?为什么要改变this?怎么改变 this 指向?

目录 this 是什么&#xff1f; 箭头函数中的 this 为什么要改变 this 指向&#xff1f; 改变 this 指向的三种方法 call(无数个参数) apply(两个参数) bind(无数个参数) this 是什么&#xff1f; 在对象方法中&#xff0c;this 指的是所有者对象&#xff08;方法的拥有者…

程序人生——Java数组和集合使用建议(1)

目录 引出数组和集合建议60&#xff1a;性能考虑&#xff0c;数组是首选建议61&#xff1a;若有必要&#xff0c;使用变长数组建议62&#xff1a;警惕数组的浅拷贝 建议63&#xff1a;在明确的场景下&#xff0c;为集合指定初始容量建议64&#xff1a;多种最值算法&#xff0c;…

YOLOv8 | 添加注意力机制报错KeyError:已解决,详细步骤

目录 添加注意力机制报错 报错的原因 注意事项 解决错误流程 代码分享 ⭐欢迎大家订阅我的专栏一起学习⭐ &#x1f680;&#x1f680;&#x1f680;订阅专栏&#xff0c;更新及时查看不迷路&#x1f680;&#x1f680;&#x1f680; YOLOv5涨点专栏&#xff1a;h…

Linux中GPU相关命令

Linux查看显卡信息&#xff1a; lspci | grep -i vga 使用nvidia GPU可以&#xff1a; lspci | grep -i nvidia1 前边的序号 "00:0f.0"是显卡的代号(这里是用的虚拟机); 查看指定显卡的详细信息用以下指令&#xff1a; lspci -v -s 00:0f.01 Linux查看Nvidia显…

探索仿函数(Functor):C++中的灵活函数对象

文章目录 一、仿函数定义及使用二、仿函数与函数指针的区别三、仿函数与算法的关系四、仿函数的实践用例 在C编程中&#xff0c;我们经常需要对数据进行排序、筛选或者其他操作。为了实现这些功能&#xff0c;C标准库提供了许多通用的算法和容器&#xff0c;而其中一个重要的概…

Linux--基本知识入门

一.几个基本知识 终端: CtrlAltT 或者桌面/文件夹右键,打开终端切换为管理员: sudo su 退出:exit查看内核版本号: uname -a内核版本号含义: 5 代表主版本号;13代表次版本号;0代表修订版本号;30代表修订版本的第几次微调;数字越大表示内核越新. 二.目录…

git bash 命令行反应慢、卡顿(定位出根本原因)

参考该博主&#xff1a; https://blog.csdn.net/weixin_50212044/article/details/131575987?utm_mediumdistribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-131575987-blog-130024908.235v43pc_blog_bottom_relevance_base4&spm1001.210…

26.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-实现生成日志文件的功能

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;25.利用全新的通…

【北京大学】徐高《金融经济学二十五讲》

一、经济的任务 经济的任务之一是确保有效地分配稀缺资源&#xff0c;这是经济学中的一个核心问题。资源是有限的&#xff0c;而需求是无限的&#xff0c;因此经济系统需要通过合理的机制来分配资源以满足社会的需求。以下是关于经济分配资源的几个方面&#xff1a; 1. 资源配…

Matlab进阶绘图第45期—蝴蝶气泡图

蝴蝶气泡图是一种特殊的柱泡图/气泡柱状图。 蝴蝶图一般由左右两个水平柱状图组合而成&#xff0c;其形如蝴蝶展翅&#xff0c;可以很直观地展示两种数据直接的差异。 而蝴蝶气泡图则是在两个水平柱状图每根柱子外侧额外添加大小不同的气泡&#xff0c;用于表示另外一个数据变…

web学习笔记(三十三)

目录 1.严格模式 1.1严格模式的概念&#xff1a; 1.2严格模式在语义上更改的地方&#xff1a; 1.3如何开启严格模式 1.4严格模式应用上的变化 2.原型链 1.严格模式 1.1严格模式的概念&#xff1a; 严格模式有点像es5向es6过渡而产生的一种模式&#xff0c;因为es6的语法…

密码保护小贴士:如何应对常见的网络钓鱼攻击?

网络钓鱼攻击是一种常见的网络欺诈手段&#xff0c;针对个人隐私和财产安全构成威胁。以下是一些密码保护的小贴士&#xff0c;帮助您应对常见的网络钓鱼攻击&#xff1a; 1.谨慎点击链接&#xff1a;收到来历不明的邮件、短信或社交媒体消息时&#xff0c;不要轻易点击其中的…