Windows下怎么搭建Scala开发环境
这篇文章主要介绍"Windows下怎么搭建Scala开发环境",在日常操作中,相信很多人在Windows下怎么搭建Scala开发环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Windows下怎么搭建Scala开发环境"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
第一章 Scala 语言概述
1.1 why is Scala 语言?
1、Spark--新一代
内存级
大数据计算框架,是大数据的重要内容。
2、Spark 就是使用 Scala 编写的。因此为了更好的学习 Spark, 需要掌握 Scala 这门语言。
3、Scala 是 Scalable Language 的简写,是一门多范式(范式=编程方式[面向对象/函数式编程])的编程语言。
4、联邦理工学院洛桑(EPFL)的 Martin Odersky(马丁·奥德斯基) 于 2001 年开始设计 Scala(斯卡拉)。
5、Spark 的兴起,带动 Scala 语言的发展!
1.2 Scala 语言诞生小故事
创始人马丁·奥德斯基 (Martin Odersky) 是编译器及编程的狂热爱好者,长时间的编程之后,希望发明一种语言,能够让写程序这样的基础工作变得高效、简单。所以当接触到 JAVA 语言后,对 JAVA 这门便携式、运行在网络、且存在垃圾回收的语言产生了极大的兴趣,所以决定将函数式编程语言的特点融合到 JAVA 中,由此发明了两种语言(Pizza & Scala)。 (大量使用递归)
jdk5.0 的泛型、for 循环增强,、自动类型转换等,都是从 Pizza 引入的新特性。
jdk8.0 的类型推断、Lambda 表达式 就是从 scala 引入的特性。
Pizza 和 Scala 极大地推动了 Java 编程语言的发展。[如何理解?]
且现在主流 JVM 的 javac 编译器就是 马丁·奥德斯基 编写出来的。并被 JAVA 编程人员广泛的使用,所以 Scala 语言起源于 Java,却推动着 Java 的发展,它们是相辅相成的。Jdk5.0、Jdk8.0 的编译器就是 马丁·奥德斯基 写的,因此 马丁·奥德斯基 是一个人的战斗力抵得上一个 Java 开发团队。
正是基于上面的原因,所以 Scala 源代码 (.scala) 会被编译成 Java 字节码 (.class),然后运行于 JVM 之上,并可以调用现有的 Java 类库,实现两种语言的无缝对接,因此,对于已经掌握 JAVA 语言的我们来讲,学习起来一定会略显轻松。
Scala 是一门以 java 虚拟机(JVM) 为目标运行环境并将面向对象
和函数式编程
的最佳特性结合在一起的静态类型编程语言
。(运行之前一定知道类型是什么)
1.3 Scala 和 Java 以及 jvm 的关系分析图
一般来说,学 Scala 的人,都会 Java,而 Scala 是基于 Java 的,因此我们需要将 Scala 和 Java 以及 JVM 之间的关系搞清楚,否则学习 Scala 你会蒙圈。
建议:如果没有任何 Java 基础的同学,先学 Java,至少要学习 JavaSE,再学习 Scala。
我们分析一下:Scala 和 Java 以及 jvm 的关系 (重要!!!)
2、1.6 Linux 下搭建 Scala 开发环境
在实际开发中,我们的项目是部署到 linux 上,因此,我们需要在 Linux 下搭建 scala 的环境。Linux 下安装 Scala 的原理机制一样,操作的具体步骤:
1、下载对应的 scala 的安装软件 scala-2.11.8.tgz
2、通过远程登录工具,将安装软件上传到对应的 Linux 系统(xshell6 和 xftp6)
3、mkdir /opt/module/scala 创建目录
4、解压:$ tar -zvxf /opt/software/scala-2.11.8.tgz -C /opt/module/scala/
5、配置环境变量 vim /etc/profile
在该文件中配置 scala 的 bin 目录 /opt/module/scala/scala-2.11.8/bin#SCALA_HOMEexport SCALA_HOME=/opt/module/scala/scala-2.11.8export PATH=$PATH:$SCALA_HOME/bin6、使配置文件生效 source /etc/profile
7、测试,命令:scala
对 scala 程序基本结构说明:1.8.2 linux 下开发步骤
步骤如下:
1、直接使用 vim 开发,一个遍历数组的案例。
2、将 Scala 代码编写到扩展名为 HelloScala.scala 的文件中。[代码说明]
3、通过 scala 命令对该 scala 文件进行编译,生成 .class 字节码文件。
4、在终端执行 scala HelloScala 就可以看到运行效果。
5、注意
:通过 scala HelloScala 命令可以直接运行 HelloScala.scala 程序。
代码如下:/** * 只要以后看到 object HelloScala,我们就应该有如下认识: * 1、object HelloScala 对应的是一个 HelloScala$ 类型的静态对象 MODULE$。 * 2、object HelloScala 在程序运行中是单例存在的。 */object HelloScala { def main(args: Array[String]): Unit = { println("hello scala") }}1.8.3 IDEA 下开发步骤
使用文本工具开发项目可以很好的理解运行原理,但是不利于开发综合项目,所以在实际开发中我们要使用 Idea 来开发。
步骤如下:
1、新建一个 Maven 工程,在工程的 main 目录下新建一个 scala 文件夹,将该文件夹标记为【源码文件夹】,方便管理。右键 scala -> Mark Directory as -> Sources Root
2、默认情况下,不能写 scala 程序,需要我们引入 scala 框架(即将该工程关联上 scala),选中该项目右键 -> Add Framework Support… -> 勾选左侧 Scala -> 指定 Scala 安装的主目录 -> OK。
3、在 scala 文件夹上右击,选择新建一个 Scala 类,勾选 Kind 为 Object,如下图所示:
4、开发一个 HelloScala.scala 程序。
5、运行后,就可以看到输出。
1.8.4 使用 java 写一段模拟代码,来模拟 scala 的执行流程
代码如下:
package com.atguigu.chapter01.Test;/** * 可以理解我们在 main 中写的代码放在 HelloScala$ 的 mian 里,即 scala 在底层运行的时候,编译器做了一个包装。 */public class HelloScala { public static void main(String[] paramArrayOfString) { HelloScala$.MODULE$.main(paramArrayOfString); }}final class HelloScala$ { public static final HelloScala$ MODULE$; static { MODULE$ = new HelloScala$(); } public void main(String[] args) { System.out.println("hello scala"); }}1.8.5 Scala 执行流程分析
1.8.6 Scala 程序开发注意事项(重点)
注意事项:
1、Scala 源文件以 ".scala" 为扩展名。
2、Scala 程序的执行入口是 main() 函数。
3、Scala 语言严格区分大小写。
4、Scala 方法由一条条语句构成,每个语句后不需要分号(Scala 语言会在每行后自动加分号
),这也体现出 Scala 的简洁性。
5、如果在同一行有多条语句,除了最后一条语句不需要分号,其它语句需要分号。1.9 Scala 语言转义字符
\t :一个制表位,实现对齐的功能\n :换行符\\ :一个\\" :一个"\r :一个回车 println("hello\rk");1.10 Scala 语言输出的三种方式
1、字符串通过+号连接(类似java)。
2、printf 用法(类似C语言)字符串通过 % 传值。
3、字符串通过 $ 引用(类似PHP)。
示例代码:package com.atguigu.chapter01object PrintDemo { def main(args: Array[String]): Unit = { val str1: String = "hello" val str2: String = "world" // 连接打印 println(str1 + str2) val name: String = "tom" val age: Int = 10 val sal: Float = 10.67f val height: Double = 180.75 // 格式化输出 printf("名字=%s 年龄=%d 薪水=%.2f 身高=%.3f", name, age, sal, height) // scala 支持使用 $ 输出内容 println(s"个人信息如下1:\n 名字$name\n 年龄$age\n 薪水$sal\n") // 如果字符串中出现了类似 ${age + 10} ,则表示 {} 是一个表达式 println(s"个人信息如下2:\n 名字${name}\n 年龄${age + 10}\n 薪水${sal}\n") }}输出结果:
helloworld名字=tom 年龄=10 薪水=10.67 身高=180.750个人信息如下1:名字tom年龄10薪水10.67个人信息如下2:名字tom年龄20薪水10.671.11 Scala 源码的查看的关联
在使用 scala 过程中,为了搞清楚 scala 底层的机制,需要查看源码,下面看看如果关联和查看 scala 的源码包。
1、查看源码, 选择要查看的方法或者类, 输入 Ctrl + B 或者 双击
当我们没关联源码时,会看到如下图:
我么可以点击 Download… 自动下载源码,也可以手动关联源码。2、手动关联源码
源码包下载地址:link,修改我们下载的源码包 scala-2.11.8.tar.gz 包名为 scala-sources-2.11.8.tar.gz,为了方便识别
步骤一:将我们的源码包拷贝至 scala/lib 文件夹下(scala-sources-2.11.8.tar.gz),这样为了方便管理,然后进行解压(因为 IDEA 不识别 xxx.tar.gz 这种格式的压缩包)
步骤二:关联即可,点击 Attach Sources…,选中 scala-sources-2.11.8 这个文件夹,进行关联,最后,可以看到源码1.12 注释
1.12.1 介绍
用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性。
注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再用代码去体现。1.12.2 Scala 中的注释类型
1、单行注释:格式:// 注释文字
2、多行注释:格式: /* 注释文字 */
3、文档注释:注释内容可以被工具 scaladoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。1.12.3 文档注释案例
1、打开文件所在的目录,选中文件右键 -> Show in Explorer
2、在命令行窗口中输入scaladoc -d d:/mydoc Comment.scala
可以生成对应的文档说明。
示例代码如下:package com.atguigu.chapter01object Comment { def main(args: Array[String]): Unit = { println("hello world") } /** * @deprecated 过期 * @example * 输入 n1 = 10 n2 = 20 return 30 * @param n2 * @return 求和 */ def sum(n1: Int, n2: Int): Int = { return n1 + n2 }}1.12.4 scala 的代码规范说明
1.12.5 正确的注释和注释风格
查看 Scala 源码。
1.12.6 正确的缩进和空白
1、使用一次 tab 操作,实现缩进,默认整体向右边移动,使用 Shift + Tab 整体向左移。
2、或者使用 Ctrl + Alt + L 来进行格式化代码。
3、运算符两边习惯性各加一个空格。比如:2 + 4 * 5。
4、一行最长不超过 80 个字符,超过的请使用换行展示,尽量保持格式优雅。1.12.7 Scala 官方编程指南
API 下载地址:scala-api
到此,关于"Windows下怎么搭建Scala开发环境"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!