Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Scala安装和开发环境配置教程

Scala安装和开发环境配置教程

作者头像
SmileNicky
发布于 2022-05-07 10:19:36
发布于 2022-05-07 10:19:36
62200
代码可运行
举报
文章被收录于专栏:Nicky's blogNicky's blog
运行总次数:0
代码可运行

开发环境:

  • jdk1.8+
  • IntelliJ IDEA 2018
  • Scala2.11.12

1、Scala语言概述

Scala语言概述:Scala语言是一门以Java虚拟机为运行环境,支持面向对象和函数式编程的静态语言,java语言是面向对象的,所以代码写起来就会相对比较模块儿,而函数式编程语言相对比较简洁。

发展过程:联邦理工学院的马丁·奥德斯基(Martin Odersky)于2001年开始设计Scala。马丁·奥德斯基是编译器及编程的狂热爱好者,长时间的编程之后,希望发明一种语言,能够让写程序这样的基础工作变得高效,简单。马丁·奥德斯基对JAVA这门便携式,运行在网络,且存在垃圾回收的语言产生了极大的兴趣,所以决定将函数式编程语言的特点融合到JAVA中,由此发明了两种语言(Pizza & Scala)

Scala语言官网:https://scala-lang.org/

补充:

  • 静态语言:静态语言(强类型语言)是编译时变量的数据类型就可以确定的语言,大多数静态语言要求在使用变量之前必须声明数据类型。比如Java、C、C++、C#等。
  • 动态语言:动态语言(弱类型语言)是运行时才确定数据类型的语言,变量在使用之前无需申明类型。比如Php、Asp、JavaScript、PythonPerl等等

1、Scala下载安装

Scala程序是运行在java虚拟机的,所以需要先安装jdk,注意jdk版本和scala的兼容,详情参考官方文档说明:https://docs.scala-lang.org/overviews/jdk-compatibility/overview.html

在Scala官网https://www.scala-lang.org/download/all.html,找到所有的版本下载页面:

3.x版本的下载链接被放在GitHub了,所以去GitHub下载

GitHub releases链接:https://github.com/lampepfl/dotty/releases/tag/3.1.2,下载scala3-3.1.2.tar.gz, scala3-3.1.2.zip都可以

Scala2.x版本可以直接在官网下载,不需要去GitHub下载,scala-2.11.12.msi的是安装版,scala-2.11.12.zip的是window绿色版

环境变量配置:新建一个SCALA_HOME变量

在path加上Scala环境变量 %SCALA_HOME%\bin

cmd窗口运行,输入scala

3、IDEA按照Scala插件

开发软件可以选择idea或者Eclipse都可以,本文以idea为示例,点击File->Setting,找到Plugins插件,搜索查找scala,点击安装Install

安装好之后,需要重启IDEA即可

4、创建Scala项目

选择File->New,选择New Project,选择Scala->IDEA,点击Next

因为jdk版本是1.8的,所以只能选择对应Scala Sdk版本2.x的

项目创建好之后,选择项目,右键->New->Scala class,新建一个类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.scala.sample


object ScalaSample {

    def main(args: Array[String]): Unit = {
      println("Hello, Scala developer!")
    }
}

新建一个Application来运行Scala程序,选择main class

5、maven方式创建scala项目

当然,也可以新建一个maven项目来运行Scala,File->New->New Project,选择maven项目:

然后选择jdk和scala sdk即可,和上述一样,都是next一步地操作

然后,新建项目之后,File -> Project Structure,在Project Settings ->Libraries页面,点击+新增,选择Scala Sdk,找到之前下载的scala按照目录即可,然后会弹出,Choose Modules页面,选择刚才的项目即可

然后,这个maven项目也是支持scala了,同样右键->New->Scala Class,新建一个Scala类:

6、参考资料

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
力扣 (LeetCode)-104. 二叉树的最大深度,图
每天学习编程,让你离梦想更新一步,感谢不负每一份热爱编程的程序员,不论知识点多么奇葩,和我一起,让那一颗四处流荡的心定下来,一直走下去,加油,2021加油!欢迎关注加我vx:xiaoda0423,欢迎点赞、收藏和评论
达达前端
2021/03/22
6770
力扣 (LeetCode)-104. 二叉树的最大深度,图
用js来实现那些数据结构16(图02-图的遍历)
  上一篇文章我们简单介绍了一下什么是图,以及用JS来实现一个可以添加顶点和边的图。按照惯例,任何数据结构都不可或缺的一个point就是遍历。也就是获取到数据结构中的所有元素。那么图当然也不例外。这篇文章我们就来看看如何遍历以及用js来实现图的遍历。   首先,有两种算法可以对图进行遍历:广度优先搜索(BFS)和深度优先搜索(DFS)。图的遍历可以用来寻找特定的顶点,可以寻找两个顶点之间有哪些路径,检查图是否是联通的,也可以检查图是否含有环等等。   在开始代码之前,我们需要了解一下图遍历的思想,也就是说,
zaking
2018/06/14
1.7K1
TypeScript实现图
图是一个非线性数据结构,本文将讲解图的基本运用,将图巧妙运用,并用TypeScript将其实现,欢迎各位感兴趣的开发者阅读本文。
神奇的程序员
2022/04/10
6300
TypeScript实现图
【你该懂一点Javascript算法系列】之【图类】的定义及深度优先与广度优先搜索算法
图 github直达地址 https://github.com/fanshyiis/...
super.x
2019/04/12
6450
【你该懂一点Javascript算法系列】之【图类】的定义及深度优先与广度优先搜索算法
文心一言 VS 讯飞星火 VS chatgpt (309)-- 算法导论22.2 7题
七、职业摔跤手可以分为两种类型:“娃娃脸”(“好人”)型和“高跟鞋”(“坏人”)型。在任意一对职业摔跤手之间都有可能存在竞争关系。假定有 n 个职业摔跤手,并且有一个给出竞争关系的 r 对摔跤手的链表。请给出一个时间为 O(n+r) 的算法来判断是否可以将某些摔跤手划分为“娃娃脸”型,而剩下的划分为“高跟鞋”型,使得所有的竞争关系均只存在于娃娃脸型和高跟鞋型选手之间。如果可以进行这种划分,则算法还应当生成一种这样的划分。如果要写代码,请用go语言。
福大大架构师每日一题
2024/08/16
1060
文心一言 VS 讯飞星火 VS chatgpt (309)-- 算法导论22.2 7题
文心一言 VS 讯飞星火 VS chatgpt (303)-- 算法导论22.2 1题
一、请计算出在有向图22-2(a)上运行广度优先搜索算法后的d值和π值。这里假定结点3为算法所用的源结点。如果要写代码,请用go语言。
福大大架构师每日一题
2024/08/16
1170
文心一言 VS 讯飞星火 VS chatgpt (303)-- 算法导论22.2 1题
从 0 开始学习 JavaScript 数据结构与算法(十二)图
在计算机程序设计中,图也是一种非常常见的数据结构,图论其实是一个非常大的话题,在数学上起源于哥尼斯堡七桥问题。
XPoet
2021/04/26
7710
用js来实现那些数据结构15(图01)
  其实在上一篇介绍树结构的时候,已经有了一些算法的相关内容介入。而在图这种数据结构下,会有更多有关图的算法,比如广度优先搜索,深度优先搜索最短路径算法等等。这是我们要介绍的最后一个数据结构。同时也是本系列最为复杂的一个。那么我们先来简单介绍一下,什么是图? 一、图的概念   简单说,图就是网络结构的抽象模型,图是一组由边连接的节点(或顶点)。任何二元关系都可以用图来表示。比如我们的地图,地铁线路图等。都是图的实际应用。   接着我们看看图的一些相关概念和术语。   一个图G = (V,E)由以下元素组成:
zaking
2018/06/14
7080
文心一言 VS 讯飞星火 VS chatgpt (331)-- 算法导论22.5 7题
为了判断一个有向图是否是半连通的,我们可以使用深度优先搜索(DFS)或广度优先搜索(BFS)。核心思路是检查从任意顶点出发是否能访问到所有其他顶点,并且对于任意顶点,都存在一条路径到达另一个顶点或另一个顶点存在一条路径到达它。
福大大架构师每日一题
2024/08/29
1260
文心一言 VS 讯飞星火 VS chatgpt (331)-- 算法导论22.5 7题
文心一言 VS 讯飞星火 VS chatgpt (307)-- 算法导论22.2 5题
五、证明:在广度优先搜索算法里,赋给结点 u 的 u.d 值与结点在邻接链表里出现的次序无关。使用图 22-3 作为例子,证明:BFS 所计算出的广度优先树可以因邻接链表中的次序不同而不同。如果要写代码,请用go语言。
福大大架构师每日一题
2024/08/16
1240
文心一言 VS 讯飞星火 VS chatgpt (307)-- 算法导论22.2 5题
数据结构——图
图是一组由边连接的顶点。任何二元关系都可以用图来表示。社交网络、道路等都可以用图来表示。
多云转晴
2020/05/21
9410
【数据结构与算法】详解什么是图结构,并用代码手动实现一个图结构
本系列文章【数据结构与算法】所有完整代码已上传 github,想要完整代码的小伙伴可以直接去那获取,可以的话欢迎点个Star哦~下面放上跳转链接
@零一
2021/01/29
5760
文心一言 VS 讯飞星火 VS chatgpt (315)-- 算法导论22.3 7题
七、请重写DFS算法的伪代码,以便使用栈来消除递归调用。如果要写代码,请用go语言。
福大大架构师每日一题
2024/08/16
1100
文心一言 VS 讯飞星火 VS chatgpt (315)-- 算法导论22.3 7题
数据结构基础温故-5.图(中):图的遍历算法
上一篇我们了解了图的基本概念、术语以及存储结构,还对邻接表结构进行了模拟实现。本篇我们来了解一下图的遍历,和树的遍历类似,从图的某一顶点出发访问图中其余顶点,并且使每一个顶点仅被访问一次,这一过程就叫做图的遍历(Traversing Graph)。如果只访问图的顶点而不关注边的信息,那么图的遍历十分简单,使用一个foreach语句遍历存放顶点信息的数组即可。但是,如果为了实现特定算法,就必须要根据边的信息按照一定的顺序进行遍历。图的遍历算法是求解图的连通性问题、拓扑排序和求解关键路径等算法的基础。
Edison Zhou
2018/08/20
1.2K0
数据结构基础温故-5.图(中):图的遍历算法
文心一言 VS 讯飞星火 VS chatgpt (311)-- 算法导论22.2 9题
九、设$G=(V,E)$为一个连通无向图。请给出一个$O(V+E)$时间的算法来计算图$G$中的一条这样的路径:该路径正反向通过$E$中每条边恰好一次(该路径通过每条边两次,但这两次的方向相反)。如果给你大量的分币作为奖励,请描述如何在迷宫中找出一条路。如果要写代码,请用go语言。
福大大架构师每日一题
2024/08/16
1030
文心一言 VS 讯飞星火 VS chatgpt (311)-- 算法导论22.2 9题
文心一言 VS 讯飞星火 VS chatgpt (322)-- 算法导论22.4 3题
三、给出一个算法来判断给定无向图$G=(V,E)$是否包含一个环路。算法运行时间应该在$O(V)$数量级,且与$|E|$无关。如果要写代码,请用go语言。
福大大架构师每日一题
2024/08/16
930
文心一言 VS 讯飞星火 VS chatgpt (322)-- 算法导论22.4 3题
文心一言 VS 讯飞星火 VS chatgpt (301)-- 算法导论22.1 5题
五、有向图$G=(V,E)$的平方图是图$G^{2}=(V,E^{2})$,这里,边$(u,v)∈E^{2}$当且仅当图$G$包含一条最多由两条边构成的从$u$到$v$的路径。请给出一个有效算法来计算图$G$的平方图$G^{2}$。这里图$G$既可以以邻接链表表示,也可以以邻接矩阵表示。请分析算法的运行时间。如果要写代码,请用go语言。
福大大架构师每日一题
2024/08/16
970
文心一言 VS 讯飞星火 VS chatgpt (301)-- 算法导论22.1 5题
【愚公系列】2023年11月 数据结构(十四)-图
数据结构是计算机科学中的一个重要概念,它描述了数据之间的组织方式和关系,以及对这些数据的访问和操作。常见的数据结构有:数组、链表、栈、队列、哈希表、树、堆和图。
愚公搬代码
2023/11/13
3360
《JavaScript数据结构与算法》读书笔记
这本书让我回顾了一遍大学时候学的数据结构。数据结构和算法是程序员最喜欢也是最痛苦的部分,这本书很轻松的描述了这部分东西,是一本很不错的书。这篇文章记录书中的重点部分,并不会对书中所有的内容都复述一遍,如果希望了解更多的内容可以去看看这本书。由于ES5和ES6思想基本上是相同的,这里只记录ES6的实现。
kai666666
2020/10/19
4060
《JavaScript数据结构与算法》读书笔记
揉捻Map-疯狂Java
学编程的小程
2023/10/11
2470
揉捻Map-疯狂Java
推荐阅读
相关推荐
力扣 (LeetCode)-104. 二叉树的最大深度,图
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验