Scala环境搭建

目录

前言

Scala的概述

Scala环境的搭建

一、配置Windows的JAVA环境

二、配置Windows的Scala环境

编写一个Scala程序


前言

 学习Scala最好先掌握Java基础及高级部分知识,文章正文中会提到Scala与Java的联系,简单来讲Scala好比是Java的加强版,因为Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言(静态语言需要提前编译的如:Java、c、c++等,动态语言如:js)。

Scala的概述

第一个问题肯定是,scala是什么

Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的 静态类型编程语言(静态语言需要提前编译的如:Java、c、c++等,动态语言如:js)。

  1. Scala是一门多范式的编程语言,Scala支持面向对象和函数式编程。(多范式,就是多种编程方 法的意思。有面向过程、面向对象、泛型、函数式四种程序设计方法。)
  2. Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有 的Java类库,实现两种语言的无缝对接。
  3. Scala单作为一门语言来看,非常的简洁高效。
  4. Scala在设计时,马丁·奥德斯基是参考了Java的设计思想,可以说Scala是源于Java,同时马丁·奥 德斯基也加入了自己的思想,将函数式编程语言的特点融合到JAVA中, 因此,对于学习过Java的同学, 只要在学习Scala的过程中,搞清楚Scala和Java相同点和不同点,就可以快速的掌握Scala这门语言。

Scala环境的搭建

一、配置Windows的JAVA环境

步骤一:

先下载,windows版本java安装包(要与Linux版本的区分开来

https://www.oracle.com/java/technologies/downloads/#java8-windowsicon-default.png?t=N7T8https://www.oracle.com/java/technologies/downloads/#java8-windows

步骤二:

安装java包,选择你要放的路径(方便后面配置java环境)

步骤三:

点击“设置→系统→(划到最下面)系统信息→高级系统设置→环境变量”

步骤四:

点击”新建→输入变量名→输入变量值(安装路径)“

步骤五:

双击“(已经存在的)Path→添加执行环境”

步骤六:

”win+r“之后输入cmd进入命令行模式

向图中一样就算成功了

二、配置Windows的Scala环境

步骤一:

先下载,windows版本scala安装包(要与Linux版本的区分开来)

https://www.scala-lang.org/download/2.12.15.htmlicon-default.png?t=N7T8https://www.scala-lang.org/download/2.12.15.html

步骤二:

安装scala包,选择你要放的路径(方便后面配置java环境)

步骤三:

点击“设置→系统→(划到最下面)系统信息→高级系统设置→环境变量”

步骤四:

点击”新建→输入变量名→输入变量值(安装路径)“

步骤五:

双击“(已经存在的)Path→添加执行环境”

步骤六:

”win+r“之后输入cmd进入命令行模式

向图中一样就算成功了

编写一个Scala程序

步骤一:

使用IDEA创建maven工程,“File --> new --> Project”

步骤二:

选择创建Maven项目,选择自己的JDK,点击“NEXT”进入下一步:

步骤三:

输入项目名,项目存放的路径

项目创建好后,如下图所示:

步骤四:

安装scala插件,“File --> Settings --> Plugins --> 搜索Scala即可”

如果网络不稳定,或者网络慢,可能会导致安装失败,或者花费很长很长时间,所以我们也可以自己在官网上安装,然后选择“在磁盘中导入”也可以

https://plugins.jetbrains.com/plugin/1347-scala/versionsicon-default.png?t=N7T8https://plugins.jetbrains.com/plugin/1347-scala/versions找到自己idea版本对应的scala版本下载

下载好以后,在idea中导入插件,“File → Settings → Plugins→ 点击旁边的设置按钮的图标

→‘Install Plugin from Disk’”导入下载的插件即可

步骤五:

创建scala文件前需要添加Scala框架

项目右键 → Add Frameworks Support → 勾选Scala即可(在最底下,往下滑)

步骤六:

创建scala文件

步骤七:

写入代码

object HelloWorld {def main(args: Array[String]): Unit = {println("Hello World")}
}

步骤八:

运行结果,第一次会慢点,因为他需要编译的新项目里的各种文件依赖等等

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

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

相关文章

【Java多线程(2)】Thread常见方法和线程状态

目录 一、Thread类及常见方法 1. join() 等待一个线程 2. currentThread() 获取当前线程引用 3. sleep() 休眠当前线程 二、线程的状态 1. 线程的所有状态 2. 状态转移 一、Thread类及常见方法 接上文:多线程(1)http://t.csdnimg.cn/…

git-怎样把连续的多个commit合并成一个?

Git怎样把连续的多个commit合并成一个? Git怎样把连续的多个commit合并成一个? 参考URL: https://www.jianshu.com/p/5b4054b5b29e 查看git日志 git log --graph比如下图的commit 历史,想要把bai “Second change” 和 “Third change” 这…

【Linux系统zabbix安装部署】

1、安装lamp环境 [rootlocalhost software]# yum -y install mariadb mariadb-server httpd php php-mysql [rootlocalhost software]# systemctl enable httpd [rootlocalhost software]# systemctl restart htpd [rootlocalhost software]# systemctl restart httpd [rootloc…

cinder学习小结

1 官方文档 翻译官方文档学习 链接Cinder Administration — cinder 22.1.0.dev97 documentation (openstack.org) 1.1 镜像压缩加速 在cinder.conf配allow_compression_on_image_upload True可打开开关 compression_format xxx可设置镜像压缩格式,可为gzip 1.2 …

手撕算法-数组中的第K个最大元素

描述 分析 使用小根堆&#xff0c;堆元素控制在k个&#xff0c;遍历数组构建堆&#xff0c;最后堆顶就是第K个最大的元素。 代码 class Solution {public int findKthLargest(int[] nums, int k) {// 小根堆PriorityQueue<Integer> queue new PriorityQueue<>…

【python从入门到精通】-- 第二战:注释和有关量的解释

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;python从入门到精通&#xff0c;魔法指针&#xff0c;进阶C&#xff0c;C语言&#xff0c;C语言题集&#xff0c;C语言实现游戏&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文…

鸿蒙 HarmonyOS应用开发之API:Context

Context 是应用中对象的上下文&#xff0c;其提供了应用的一些基础信息&#xff0c;例如resourceManager&#xff08;资源管理&#xff09;、applicationInfo&#xff08;当前应用信息&#xff09;、dir&#xff08;应用文件路径&#xff09;、area&#xff08;文件分区&#x…

mybatis 实验报告1

文章目录 新建数据库新建项目&#xff0c;并导入jar包添加配置文件conf.xml定义实体类定义操作表user的sql的映射文件 userMapper.xml注册&#xff1a;将mapper.xml文件注册到conf.xml配置文件中一共6步&#xff0c;这个只是测试类&#xff0c;这个不算 新建数据库 命名是 随便…

嵌入式学习笔记(四)

LoadStore内存读写指令 单寄存器读写指令 指令码 ----------------ldr : 从内存地址中读取数据到寄存器中&#xff0c;读4个字节的数据str : 将寄存器中的数据写到内存地址中&#xff0c;写4个字节的数据 ------------------------------------------------------ldrh : 从内…

nandgame中的控制单元(Control Unit)

关卡说明的翻译&#xff1a; 控制单元除了ALU指令之外&#xff0c;计算机还应支持数据指令。在数据指令中&#xff0c;指令值直接写入A寄存器。创建一个控制单元&#xff0c;根据指令I的高位执行数据指令或ALU指令&#xff1a;位 15 0 数据指令 1 ALU指令ALU指令 对于ALU指令&…

Grok-1开源革新:探索人工智能的新境界

Grok-1开源革新&#xff1a;探索人工智能的新境界 在科技发展的马拉松中&#xff0c;Elon Musk旗下的xAI公司稳步前进&#xff0c;推出了名为Grok-1的语言模型。这个巨型模型&#xff0c;作为目前参数量最大的开源人工智能语言模型&#xff0c;赋予了机器学习领域全新的活力。 …

C#学习笔记4:PC串口发送数据

今日继续我的C#学习之路&#xff0c;今日学习制作PC串口发送数据的窗口程序 串口是单片机上位机开发的重点&#xff0c;本文围绕做一个通过PC端串口发送数据的程序进行实践学习&#xff0c; 文章提供源码与解释、整体工程文件 目录 1、控件的选择与摆放&#xff1a; 2、程序设…

435. 无重叠区间(力扣LeetCode)

文章目录 435. 无重叠区间题目描述贪心算法解题思路&#xff1a; 435. 无重叠区间 题目描述 给定一个区间的集合 intervals &#xff0c;其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量&#xff0c;使剩余区间互不重叠 。 示例 1: 输入: intervals [[1,…

2024.3.26

实现闹钟 weiget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTimer> #include<QTime> #include<QTimerEvent> #include<QString> #include<QtTextToSpeech> QT_BEGIN_NAMESPACE namespace Ui { class Widget; } Q…

计算机复试面试问答准备(未完)

目录 1、理解多态性2、怎么逆置⼀个链表3、顺序表和链表的区别4、树的存储结构5、什么是哈夫曼树&#xff1f;简述哈夫曼树的构造过程。介绍哈夫曼树的特性。6、哈夫曼编码的编码和解码过程7、图的遍历方式8、图的存储方式9、最小生成树10、迪杰斯特拉算法11、佛洛依德算法12、…

mysql刨根问底

索引&#xff1a;排好序的数据结构 二叉树&#xff1a; 红黑树 hash表&#xff1a; b-tree&#xff1a; 叶子相同深度&#xff0c;叶节点指针空&#xff0c;索引元素不重复&#xff0c;从左到右递增排序 节点带data btree&#xff1a; 非叶子节点只存储索引&#xff0c;可…

C语言经典例题(8) --- 进制A+B、网购、及格分数、最高分数、计算一元二次方程

文章目录 1.进制AB2.网购3.及格分数4.最高分数5.计算一元二次方程 1.进制AB 题目描述&#xff1a; 输入一个十六进制数a&#xff0c;和一个八进制数b&#xff0c;输出ab的十进制结果&#xff08;范围-231~231-1&#xff09;。 输入描述&#xff1a; 一行&#xff0c;一个十六…

不使用额外空间交换两个数

1) 算术x x y;y x - y;x x - y; 2) 异或x x^y;// 只能对int,char..y x^y;x x^y;x ^ y ^ x;加法和异或这两种方法都是用于交换两个数的值而不使用额外空间的方法。它们的适用类型如下&#xff1a; 加法方法&#xff1a; 适用于整数类型&#xff08;int、long、long lo…

C++对象的创建和使用

定义了类&#xff0c;就相当于定义了一个数据类型。类与int、char等数据类型的使用方法是一样的。可以定义变量&#xff0c;数组和指针等。使用类定义的变量通常称为该类的对象。 对象的定义格式如下&#xff1a; 类名 对象名; 1.对象访问其成员 对象通过"."访问它的…

[NCNN学习笔记]-4

1、前言 继续学习NCNN。本次学习binaryop和eltwise。 2、学习内容 2.1、binaryop binaryop是用来二元计算的op&#xff0c;先来看binaryop.h的中关于二元计算的定义&#xff0c;其中二元计算定义了如下操作。 enum OperationType {Operation_ADD 0,Operation_SUB 1,Oper…