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

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

文章目录

  • 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.mzph.cn/news/746855.shtml

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

相关文章

基于springboot+vue实现的大学计算机课程管理平台的设计与实现(全套资料)

一、系统架构 前端:vue | antv 后端:springboot | mybatis-plus 环境:jdk17 | mysql | maven | node | redis 二、代码及数据库 三、功能介绍 01. 登录页 02. 首页 03. 系统基础模块-用户管理 04. 系统基础模块-部门…

一个人做电商要怎么做?满足这三个条件,你也可以!

我是电商珠珠 现在电商平台很火,特别是短视频电商,很多从来没有接触过的新手会觉得自己一个人做不了,或者说投入成本大,会有很多人工费用,还要找货源找场地等。 其实,对于传统的电商来说,这些…

记一次Spring事务失效的发现与解决过程

一、事情起因是这样的 首先,我们是使用Spring mybatis 进行开发。 某功能在测试环境看到报错日志, 但是数据库里面的数据发生了变化,没有回滚。 执行数据库update 操作的方法上明确有 Transactional(rollbackFor Exception.class)的注解。…

蓝桥杯单片机快速开发笔记——HC573/HC138

一、原理分析 二、思维导图 三、代码参考 #include "HC573.h" #include "reg52.h"void Set_HC573(unsigned char channel, unsigned char dat) {P2 (P2 & 0x1f) | 0x00; //赋值之前,关闭全部锁存器P0 dat; //保存待设置…

阿里云和腾讯云2核4G服务器租用价格对比,选哪个好?

租用2核4G服务器费用多少?2核4G云服务器多少钱一年?1个月费用多少?阿里云2核4G服务器30元3个月、轻量应用服务器2核4G4M带宽165元一年、企业用户2核4G5M带宽199元一年;腾讯云轻量2核4G服务器5M带宽165元一年、252元15个月、540元三…

长期护理保险可改善老年人心理健康 | CHARLS CLHLS CFPS 公共数据库周报(3.6)...

欢迎报名2024年“真实世界临床研究”课程! 本周郑老师开讲:“真实世界临床研究”培训班,3月16-17日两天,欢迎报名! CHARLS公共数据库‍ CHARLS数据库简介中国健康与养老追踪调查(China Health and Retirement Longitud…

多模态特征融合新突破!5大方法刷新顶会SOTA!

多模态融合可以应用于情感分析、身份验证、行为识别等多个领域,实现更精确的预测和判断。这其中,特征融合是多模态数据处理的核心环节,它不仅能够提高模型的性能,还能够增强数据的表达力,让模型能够更好地理解和处理现…

案例分析篇05:数据库设计相关28个考点(9~16)(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

白嫖AWS云服务器,验证、注册指南

背景 不知道你想不想拥有一台属于自己的云服务器呢,拥有一台自己的云服务器可以建站,可以在上面搭建个人博客,今天我就来教大家如何申请亚马逊 AWS 免费云服务器,这个云服务器可以长达12个月的免费。而且到期后可以继续换个账号继…

测试人员业务提升的几个方面

📋 个人简介 作者简介:大家好,我是凝小飞,软件测试领域作者支持我:点赞👍收藏⭐️留言📝 整个文章来源于我的xmind梳理和总结,接下来为各位一步步拆解。 一、测试流程遵守和推进 在…

离线安装数据库 mysql 5.7 linux

离线安装数据库 mysql 5.7 linux 方法一 参考链接Linux(Debian10.2)安装MySQL5.7.24环境 赋予文件执行权限chmod x 文件名 使用root用户sudo su解压文件tar xvf mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz重命名mv mysql-5.7.42-linux-glibc2.12-x86_64 mysql将桌面的mys…

使用 URLDecoder 和 URLEncoder 对中文字符进行编码和解码

请直接看原文: 使用 URLDecoder 和 URLEncoder 对中文字符进行编码和解码_urldecoder.decode-CSDN博客 ------------------------------------------------------------------------------------------------------------------------------- 摘要: URLDecoder 和…

plotnine,一个非常实用的 Python 库!

大家好,今天为大家分享一个非常实用的 Python 库 - plotnine。 Github地址:https://github.com/has2k1/plotnine 在数据分析和可视化领域,Python 提供了许多强大的工具和库。其中,plotnine 是一个基于 Grammar of Graphics 理论的…

短剧在线搜索源码

一个非常哇塞的在线短剧搜索页面,接口已经对接好了,上传源码到服务器解压就能直接用,有能力的可以自己改接口自己写自己的接口 接口文档地址:doc.djcat.sbs 源码免费下载地址抄笔记

YOLOv8_pose-Openvino和ONNXRuntime推理【CPU】

纯检测系列: YOLOv5-Openvino和ONNXRuntime推理【CPU】 YOLOv6-Openvino和ONNXRuntime推理【CPU】 YOLOv8-Openvino和ONNXRuntime推理【CPU】 YOLOv7-Openvino和ONNXRuntime推理【CPU】 YOLOv9-Openvino和ONNXRuntime推理【CPU】 跟踪系列: YOLOv5/6/7-O…

rtsp流实现web端实时播放(海康+大华)

最近的电力项目需要嵌入海康摄像头画面,之前没有做过类似的流媒体播放,所以有些懵; 海康开放平台的webAPI,有插件还是无插件,都不适合自研web系统的嵌入,所以需要自己进行解流; 首先&#xff0c…

企业即时通讯工具,企业内部即时通讯系统推荐

企业需要私有化即时通讯系统主要出于以下几个方面的考虑, 数据安全和隐私保护:在企业日常办公中,涉及到大量的敏感信息和机密数据,这些信息如果通过公共即时通讯工具传输,存在被窃取或泄露的风险。通过私有化即时通讯…

如何将Git拉取项目后,将SSH验证方式修改为HTTPS?

首先在打开项目所在位置的Git BashGUI 查找当前的远程仓库URL: 打开终端或命令提示符,导航到你的项目目录,并使用以下命令查看当前配置的远程仓库URL: git remote -v这会显示如下格式的输出: origin gitgithub.com:用…

Linux中GPU相关命令

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

RedisTemplate实现锁超时时间延长(模仿Redisson看门狗机制)

业务场景: 在上一篇-Java业务功能并发问题处理的最后,我们用RedisTemplate实现了一个分布式锁,但是后面又有用户反馈同个单据出现了重复操作,让我们回忆下上次的加锁代码: 问题描述: 原因出现在我们锁住…