第 1 章 Scala 入门

1.1 概述

1.1.1 为什么学习 Scala

1)Spark—新一代内存级大数据计算框架,是大数据的重要内容。

2)Spark就是使用Scala编写的。因此为了更好的学习Spark, 需要掌握Scala这门语言。

3)Spark的兴起,带动Scala语言的发展

1.1.2 Scala 发展历史

1.1.3 Scala 和 Java 关系

一般来说,学 Scala 的人,都会 Java,而 Scala 是基于 Java 的,因此我们需要将 Scala和 Java 以及 JVM 之间的关系搞清楚,否则学习 Scala 你会蒙圈。

Scala和Java及JVM关系图

1.1.4 Scala 语言特点

1.2 Scala 环境搭建

下载地址

Scala 2.12.11 | The Scala Programming Language (scala-lang.org)

1)安装步骤

(1)首先确保 JDK1.8 安装成功

(2)下载对应的 Scala 安装文件 scala-2.12.11.zip

(3)解压 scala-2.12.11.zip,我这里解压到 D:\Tools

(4)配置 Scala 的环境变量

注意 1:解压路径不能有任何中文路径,最好不要有空格。

注意 2:环境变量要大写 SCALA_HOME

2)测试

需求:计算两数 a 和 b 的和。

步骤

(1)在键盘上同时按 win+r 键,并在运行窗口输入 cmd 命令

(2)输入 Scala 并按回车键,启动 Scala 环境。然后定义两个变量,并计算求和。

1.3 Scala 插件安装

默认情况下 IDEA 不支持 Scala 的开发,需要安装 Scala 插件。

1)插件离线安装步骤

(1)建议将该插件 scala-intellij-bin-2017.2.6.zip 文件,放到 Scala 的安装目录D:\Tools\scala-2.12.11 下,方便管理。

(2)打开 IDEA,在左上角找到 File->在下拉菜单中点击 Setting... ->点击 Plugins->点击右 下 角 Install plugin from disk… , 找 到 插 件 存 储 路 径D:\Tools\scala-2.12.11\scala-intellij-bin-2017.2.6.zip,最后点击 ok。

2)插件在线安装(可选)

(1)在搜索插件框里面输入 Scala->点击 Install->点击 ok->点击 apply。

(2)重启 IDEA,再次来到 Scala 插件页面,已经变成 Uninstall。

1.4 HelloWorld 案例

1.4.1 创建 IDEA 项目工程

1)打开 IDEA->点击左侧的 Flie->选择 New->选择 Project…

2)创建一个 Maven 工程,并点击 next

注意:工程存储路径一定不要有中文和空格。

3)默认下,Maven 不支持 Scala 的开发,需要引入 Scala 框架。

在 scala项目上,点击右键-> Add Framework Support... ->选择 Scala->点击 OK

注意:如果是第一次引入框架,Use libary 看不到,需要选择你的 Scala 安装目录,然后工具就会自动识别,就会显示 user libary。

4)创建项目的源文件目录

右键点击 main 目录->New->点击 Diretory -> 写个名字(比如 scala)。

右键点击 scala 目录->Mark Directory as->选择 Sources root,观察文件夹颜色发生变化。

5)在 scala 包下,创建包 com.atguigu.chapter01 包名和 Hello 类名,右键点击 scala 目录->New->Package->输入 com.atguigu.chapter01->点击 OK。

右键点击 com.atguigu.chapter01->New->Scala Class->Kind 项选择 Object->Name 项输入Hello。

输入测试代码即可。

package com.learn.day01

/**
 * @author Lucaslee
 * @create 2023-02-01 10:25
 */
/*
object 关键字,声明一个单例对象(伴生对象)
 */
object HelloWorld {
  /*
    main 方法:从外部可以直接调用执行的方法
    def 方法名称(参数名称: 参数类型[泛型]): 返回值类型 = { 方法体 }
   */
  def main(args: Array[String]): Unit = {
    println("hello world")
    System.out.println("hello scala from java")
  }
}

1.4.2 class 和 object 说明

//main方法名
// 小括号表示参数列表
//参数声明方式:java ->类型 参数名
//scala->参数名:类型
//public修饰符:scala中没有public关健字,如果不声明访问权限,那么就是公共的
//static修饰符:scala中没有静态语法,所以没有static关健字。
// void关键字:表示返回值,但是不遵面向对象语法,所以scala中没有,但是有Unit类型,表示没有返回值
//scala中: 方法名(参数列表):返回值类型
//scale中声明方法必采用关键字def声明
//scala中方法女观熙值给方法声明,所以中间需要等号连接
// Scala是一个完全面向对象的语言,所以没有静态语法,为了能调用静态语法(模仿静态语法)

//采用伴生对系单例的方式调用方法

Scala完全面向对象,故scala去掉了Java中非面向对象的元素,如static关键字,void类型
1) static
scala无static关键字,由object实现类似静态方法的功能(类名。方法名)class关键字和Java中的class关键字作用相同,用来定义一个类:
2) void
对于无返回值的函数,scala定义其返回值类型为unit类

举一个例子

package com.learn.day01

/**
 * @author Lucaslee
 * @create 2023-02-01 11:02
 */
//伴生类
class Student(name: String, var age: Int) {
  def printInfo(): Unit = {
    println(name + " " + age + " " + Student.school)
  }
}

// 引入伴生对象
object Student{
  val school: String = "atguigu"

  def main(args: Array[String]): Unit = {
    val alice = new Student("alice", 20)
    val bob = new Student("bob", 23)

    alice.printInfo()
    bob.printInfo()
  }
}

1.4.3 Scala 程序反编译

1)在项目的 target 目录 Hello 文件上点击右键->Show in Explorer->看到 object 底层生成Hello$.class 和 Hello.class 两个文件

2)采用 Java 反编译工具 jd-gui.exe 反编译代码,将 Hello.class 拖到 jd-gui.exe 页面

1.5 关联 Scala 源码

在使用 Scala 过程中,为了搞清楚 Scala 底层的机制,需要查看源码,下面看看如何关联和查看 Scala 的源码包。

1)查看源码

例如查看 Array 源码。按住 ctrl 键->点击 Array->右上角出现 Attach Soures…

2)关联源码

(1)将我们的源码包 scala-sources-2.12.11.tar.gz 拷贝到 D:\Tools\scala-2.12.11\lib 文件夹下,并解压为 scala-sources-2.12.11 文件夹

(2)点击 Attach Sources…->选择 D:\Tools\scala-2.12.11\lib\scala-sources-2.12.11,这个文件夹,就可以看到源码了

1.6 官方编程指南

1)在线查看:

The Scala Programming Language (scala-lang.org)

2)离线查看:解压 scala-docs-2.11.8.zip,可以获得 Scala 的 API 操作。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怕被各位卷死

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值