百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

scala基础学习(一)

wptr33 2025-02-08 13:04 10 浏览

之所以想学习scala是因为最近准备学习spark,spark是由函数式编程语言scala编写的,对于喜欢函数编程的我怎么能错过呢!环境说明:jdk版本为1.7.79,scala版本为2.10.4,IDE为:intellij idea。

1、scala常用类型

scala的数据类型包括7种数值类型和布尔类型。

a. Short: 16位有符号短整型

b. Int 32位有符号整型

c.Long 64位有符号长整型

d.Float 32位单精度浮点型

e.Double 64位双精度浮点型

f.Byte 8位有符号字节型

g.Char 16位无符号字符型

h.Boolean 布尔型,true或false

当然还有String类,同样为Char的序列。注意到这些类型开头都是大写的,是的,他们都是类,在scala中是没有基础类型和包装类型之分的,转化为基础类型的过程是有编译器处理的,这里有别于java。以上8中类型都来自scala包,而String类来自于scala包。备注:包scala和java.lang的所有成员被每个源文件自动引用,所以不需要写前缀,只写String、Double等即可。

2、val与var

有些地方把 val和var都称为变量,我感觉把val认为是常量,var是变量更容易理解一些。

val:被赋值后不可改变。类似于java中的final修饰的变量。

var:可被多次赋值。

3、函数

scala语言支持面向对象和函数式语言,但更推荐函数式语言,函数式语言有诸多优势,比如自然方便、易读简洁、没有并发问题等等。关于scala的函数式编程有很多内容,可以另开一章来学习,这里先介绍基本内容。

scala中函数的声明:def 函数名(参数名:参数类型,...): 返回值类型={函数体}

函数与方法是一样的,只是常把类里面的函数叫为方法。

a、在返回值中用Unit表示空,和java中的void一样。

b、如果没有参数可以省去小括号。

c、当返回值不为Unit时 可以省去返回类型和等号

d、当函数体只有一行时可以省去大括号

4、条件表达式和循环

条件表达式:if(判断语句) {判断语句为真,执行的代码块} else { 为false执行的代码块}

注意的是条件表达式都有返回值,即为if或者else的返回值,在scala中所有的表达式都是返回值。

循环有while、do-while和for,其中for的形式有点区别:

for(i <- 表达式) {循环体}

注意的是scala在循环中是没有continue和break来实现跳出的,可以使用Boolean型控制变量或者scala.util.contorl.Breaks类来实现或者使用return语句。另外在scala中不推荐使用for循环,for循环比while循环在效率上差距挺大。

剩下内容在下篇内容继续学习。

初学scala,有什么不对的希望大家不吝指正。

相关推荐

用Java实现RAG的3大核心模块与7个必知细节

一、真实场景驱动:某制造企业的知识管理之痛某汽车零部件企业有超过20万份技术文档(PDF/HTML/Word),工程师每天平均花费2小时查找资料。我们为其构建的Java版RAG系统,将查询耗时缩短至1...

在 C# .NET 中从 PDF 中提取表数据

概述:...

【分享】教你如何使用 Java 读取 Excel、docx、pdf 和 txt 文件

在Java开发中,我们经常需要读取不同类型的文件,包括Excel表格文件、"doc"和"docx"文档文件、PDF文件以及纯文本文件。其中最常用的是A...

Spring AI 模块架构与功能解析

SpringAI是Spring生态系统中的一个新兴模块,专注于简化人工智能和机器学习技术在Spring应用程序中的集成。本文将详细介绍SpringAI的核心组件、功能模块及其之间的关...

告别付费!一站式服务,PDF多功能工具!

大家好,我是Java陈序员。今天,给大家介绍一个PDF多功能在线操作工具,完全免费开源!...

本地PDF操作神器:永久告别盗版和破解,再也不用担心安全问题

前言PDF(便携式文档格式)目前已经成为了文档交换和存储的标准。然而,找到一个功能全面、安全可靠、且完全本地化的PDF处理工具并不容易。...

Python rembg 库去除图片背景

rembg是一个强大的Python库,用于自动去除图片背景。它基于深度学习模型(如U^2-Net),能够高效地将前景物体从背景中分离,生成透明背景的PNG图像。本教程将带你从安装到实际应用...

31个必备的python字符串方法,建议收藏

字符串是Python中基本的数据类型,几乎在每个Python程序中都会使用到它。...

python学习day1——输出格式化

print一般在控制台中我们用print进行输出,默认情况下,使用格式为:print(*objects,sep='',end='\n')第一个参数是我们要在控制台...

一张图认识Python(附基本语法总结)

一张图认识Python(附基本语法总结)一张图带你了解Python,更快入门,一张图认识Python(附基本语法总结)Python基础语法总结:1.Python标识符在Python里,标识符有字...

学习编程第188天 python编程 字典格式化

今天学习的是刘金玉老师零基础Python教程第84期,主要内容是python字典格式化。...

Python基础数据类型转换

Python中的基础数据类型转换可以分为隐式转换和显示转换。隐式转换是python解释器自动转换,显示转换是通过内置函数实现。无论哪种方式进行的转换,均为转换为对应类型的数据,而非改变原数据的类型。...

python之json基本操作

1.概述JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,它具有简洁、清晰的层次结构,易于阅读和编写,还可以有效的提升网络传输效率。Python标准库的...

Python之迭代器及其用法

前面章节中,已经对列表(list)、元组(tuple)、字典(dict)、集合(set)这些序列式容器做了详细的介绍。值得一提的是,这些序列式容器有一个共同的特性,它们都支持使用for循环遍历存储...

从初始化一个现代 python项目学习到的东西

uv我准备用uv初始化一个python项目环境我用的是苹果笔记本MacBookPro,具体的操作系统及硬件参数如下:...