Spark大数据处理学习笔记1.2 Scala变量与数据类型

news2024/11/27 20:33:54

文章目录

  • 一、变量声明
    • (一)简单说明
    • (二)利用val声明变量
      • 1、声明方式
      • 2、案例演示
    • (三)利用var声明变量
      • 1、声明方式
      • 2、案例演示
    • (四)同时声明多个变量
  • 二、数据类型
    • (一)Scala类型层次结构
      • 1、Any类型
      • 2、AnyVal类型
      • 3、AnyRef类型
      • 4、案例演示
    • (二)基本数据类型
      • 1、基本类型表
      • 2、基本类型的富包装器
    • (三)数据类型转换
      • 1、值类型的转换
      • 2、引用类型的转换

  • 学习目标
    1.学会变量声明
    2.掌握数据类型

一、变量声明

(一)简单说明

  • Scala中变量的声明使用关键字val和var。val类似Java中的final变量,也就是常量,一旦初始化将不可修改;var类似Java中的非final变量,可以被多次赋值,多次修改。
  • val - value - 值
  • var - variable - 变量

(二)利用val声明变量

1、声明方式

  • val <变量名>[: 数据类型] = 变量值
  • 定义变量比较灵活,可以指定数据类型,也可以不指定数据类型,由Scala根据赋的值自行判断数据类型
  • 在声明变量上,Scala兼具Java和Python的特点。Java是静态语言,声明变量必须指定数据类型,Python是动态语言,声明变量不需要指定数据类型。

2、案例演示

  • 声明一个val字符串变量name,其实定义的是一个常量
    在这里插入图片描述
  • 由于val声明的变量是不可修改的,若对声明的变量name进行修改,则会报错
    在这里插入图片描述

(三)利用var声明变量

1、声明方式

  • var <变量名>[: 数据类型] = 变量值

2、案例演示

  • 声明一个var字符串变量message,然后利用print函数输出其值
    在这里插入图片描述
  • 对var变量message重新赋值,再输出其值
    在这里插入图片描述

(四)同时声明多个变量

  • Scala还可以将多个变量放在一起进行声明,将一个数值同时赋给多个变量
    在这里插入图片描述

二、数据类型

(一)Scala类型层次结构

  • 在Scala中,所有的值都有一个类型,包括数值和函数。如下图所示,说明了Scala的类型层次结构
    在这里插入图片描述

1、Any类型

  • Any是Scala类层次结构的根,也被称为超类或顶级类。Scala执行环境中的每个类都直接或间接地从该类继承。该类中定义了一些通用的方法,例如equals()、hashCode()和toString()。Any有两个直接子类:AnyVal和AnyRef。

2、AnyVal类型

  • AnyVal表示值类型,有9种预定义的值类型,它们是非空的Double、Float、Long、Int、Short、Byte、Char、Unit和Boolean。Unit是一个不包含任何信息的值类型,和Java语言中的void等同,用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()。

3、AnyRef类型

  • AnyRef表示引用类型。所有非值类型都被定义为引用类型。Scala中的每个用户定义类型都是AnyRef的子类型。AnyRef对应于Java中的java.lang.Object。

4、案例演示

  • 定义一个类型为List[Any]的变量list,list中包括字符串、整数、字符、布尔值和函数,由于这些元素都属于对象Any的实例,因此可以将它们添加到list中。
    在这里插入图片描述
  • 遍历列表元素,并显示其数据类型
    在这里插入图片描述
  • 获取列表前三个元素构成的子列表
    在这里插入图片描述
  • 将列表反序,原列表不变
    在这里插入图片描述

(二)基本数据类型

1、基本类型表

在这里插入图片描述

2、基本类型的富包装器

  • 九个基本类型提供的方法比较有限,为了拓展其功能,Scala提供了对应九个富包装器,其实也是九个类,这九个类的直接量在需要时可以自动被转换为其对应的富包装类来调用富包装类提供的额外方法。
    在这里插入图片描述

(三)数据类型转换

1、值类型的转换

在这里插入图片描述

2、引用类型的转换

在这里插入图片描述

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

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

相关文章

企业课(理论)

数据链路层 IP地址&#xff1a;32bit 十进制、二进制表示 Mac地址&#xff1a;48bit 十六进制 &#xff08;0-9&#xff0c;a-f&#xff09; Mac地址&#xff1a; 单播Mac地址&#xff1a;一对一 48bit第八bit为0 组播Mac地址&#xff1a;一对多 48bit第八b…

iOS app上架截屏尺寸 5.5英寸:1242x2208 6.5英寸:1242x2688

5.5英寸和6.5英寸的iphone的截屏必须上传 5.5英寸&#xff1a;1242x2208 6.5英寸&#xff1a;1242x2688

张量分析入门笔记 (Tensor For Beginner)

前言 学习的时候感觉要学一下张量&#xff0c;在B站看了一个视频&#xff0c;记录一下&#xff0c;参考的是B站视频【机翻】张量分析入门 (Tensor For Beginner) 前言1. 张量的定义 Tenson Definition2. 张量的前向和后向的转换 Forward and Backward Transformation3. 向量 Ve…

Java网络开发(servlet思考)——什么时候用转发,什么时候用重定向 请求request,响应response

目录 引出转发和重定向1.请求转发---request2.响应重定向----response 转发&#xff1f;重定向&#xff1f;1.登陆后重定向2.登陆后转发3.总结 案例&#xff1a;图书信息管理系统1.用户相关操作---注册&#xff0c;登陆&#xff0c;修改密码 / 昵称&#xff0c;退出登陆2.图书相…

努力有没有用?

努力有没有用&#xff1f; 都说站在风口浪尖&#xff0c;猪都能飞起来。 但时代的红利也是给有准备的人才能抓住。凭什么人家努力了那么久&#xff0c;做了那么多准备&#xff0c;在无人问津的小黑屋熬那么久&#xff0c;终于出人头地后被说成是吃了时代的红利。 努力&#xf…

vue封装组件发布到npm,支持unplugin-vue-components按需引入

目的&#xff1a;vue封装组件发布到npm,支持unplugin-vue-components按需引入 vue组件 https://gitee.com/jiangzhuqingfeng/plugin-vue-componets.git工具类 https://gitee.com/jiangzhuqingfeng/plugin-validate.gittaro组件 https://gitee.com/jiangzhuqingfeng/plugin-tar…

4年测试经验面试要20K,简单问了一下,连基础都不会,我也是醉了····

现在招个合适的人可真难呀&#xff0c;不是这不会就是那不会&#xff0c;没有一个让我满意的 公司前段时间缺人&#xff0c;面试了不少的测试&#xff0c;结果居然没有一个符合要求的。一开始瞄准的就是中级测试工程师的水准&#xff0c;也没指望来技术大牛&#xff0c;提供的薪…

谷歌二次验证 Google Authenticator

后台登录要搞令牌&#xff0c;类似于steam令牌、企鹅令牌等等 开启Google的登陆二步验证&#xff08;即Google Authenticator服务&#xff09;后用户登陆时需要输入额外由手机客户端生成的一次性密码。 实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责…

ChatGPT+Pandas 联手,打造智能数据分析助手PandasAI,数据分析师也要失业了?!

文章目录 前言一、ChatGPT的介绍二、Pandas的介绍三、使用Pandas处理文本数据四、使用ChatGPT生成文本总结 笔记、Python学习资料戳链接直达获取>> 前言 自然语言处理&#xff08;NLP&#xff09;是人工智能领域中的一个重要分支&#xff0c;它涉及到计算机对人类语言的…

Jedis使用教程详解

目录 一、前言二、基本使用三、Jedis连接池四、连接池参数五、哨兵模式六、集群模式七、Springboot当中使用Jedis八、Springboot源码分析 一、前言 Jedis是Redis的一款Java语言的开源客户端连接工具&#xff0c;什么是客户端&#xff1f;就是真正使用者&#xff0c;像我们安装…

【Web网站服务】Nginx优化

Nginx网页优化 一、配置Nginx网页缓存时间1.1设置方法 二、隐藏Nginx版本号2.1方法一&#xff1a;修改配置文件2.2方法二&#xff1a;修改源码文件&#xff0c;重新编译 三、修改用户与组四、日志切割五、连接超时六、更改进程数七、网页压缩八、配置防盗链九、Linux内核参数优…

音乐制作宿主软件有哪些,音乐制作宿主如何选择

音乐是我们抒发感情的一种方式&#xff0c;不同的音乐表达不同的情感。而正因为如此&#xff0c;很多人想创作表达自己情感的音乐。但创作音乐的难点在于普通人并不知道一些专业知识&#xff0c;也不知道专业的音乐编曲软件。那么今天我们就来说一说音乐制作宿主软件有哪些以及…

电力能耗监测系统是如何运作的

电力能耗监测系统数据的采集主要通过多功能仪表、通讯管理机、通讯协议实现能耗数据的采集&#xff0c;能耗数据上传后经大数据计算实现能耗数据的展示&#xff0c;满足用户对能耗监测的需求。下面对电力能耗监测系统的是怎么采集数据的展开介绍&#xff1a; 1.多功能仪表 对高…

【QQ聊天界面、拖拽界面、实现数据源方法 Objective-C语言】

一、那么,接下来,我们就先把控件给它拖一下, 1.打开Main.storyboard, 里面现在是不是有一个3.5英寸的控制器, 然后,看一下我们这个示例程序,上面整体是一个UITableView, 下面留出来,一条,44的高度,放一个UIView, 由两部分组成, 所以说,我们大体上,要放两个…

人事管理项目-员工资料导出

人事管理项目-员工资料导出 后端接口实现前端实现 将员工资料导出为Excel是一个非常常见的需求&#xff0c;后端提供导出接口&#xff0c;前端下载导出数据即可。 后端接口实现 后端实现主要是将查询到的员工数据集合转为可以下载的ResponseEntity<byte[]>&#xff0c;代…

Kali-linux破解操作系统用户密码

当忘记操作系统的密码或者攻击某台主机时&#xff0c;需要知道该系统中某个用户的用户名和密码。本节将分别介绍破解Windows和Linux用户密码。 8.6.1 破解Windows用户密码 Windows系统的用户名和密码保存在SAM&#xff08;安全账号管理器&#xff09;文件中。在基于NT内核的W…

使用Android Studio开发天气预报APP(使用sqlite数据库)

使用Android Studio开发天气预报APP 今天我来分享一下如何使用Android Studio开发一个天气预报APP。在文中&#xff0c;我们将使用第三方接口获取实时天气数据&#xff0c;并显示在APP界面上。 步骤一&#xff1a;创建新项目 首先&#xff0c;打开Android Studio并创建一个新…

c语言多线程间共享哪些数据

问题描述 一个进程中的多个线程调用了共享库中的函数&#xff0c;共享库中定义了静态变量&#xff0c;该静态变量共享吗&#xff1f; 首先我们需要明确三个问题&#xff1a; 一个进程加载了共享库后&#xff0c;共享库的代码放在哪里&#xff1f;一个进程的多线程之间会共享…

Appium + mitmProxy 实现APP接口稳定性测试

随着 App 用户量的不断增长&#xff0c;任何小的问题都可能放大成严重的线上事故&#xff0c;为了避免对App造成损害的任何可能性&#xff0c;我们必须从各个方面去思考 App 的稳定性建设&#xff0c;尽可能减少任何潜在的威胁。 1.背景介绍 为了保障 App 的稳定性&#xff0c…

C#,码海拾贝(29)——求解“大型稀疏方程组”的“全选主元高斯-约去消去法”之C#源代码

大型稀疏矩阵线性化方程组的数值求解问题 广泛存在于工程实践尤其是计算机仿真领域 如水力管网计算&#xff0c;电力系统的大型导纳矩阵计算&#xff0c;高阶偏微分方程的数值求解&#xff0c;以及铸件充型过程与凝固过程的数值模拟等。 经常出现在科学和工程计算中, 因此寻找…