scala概念及函数编程

scala的概念:

   scala是运行在JVM上的多范式(多种风格)编程语言,同时支持面向对象和面向函数编程

java编译执行过程

java源码 通过javac编译 ------>编译成.class文件,把.class文件和java类库到jvm加载—> jvm到操作系统去解释执行

scala的编译执行过程
scala 源码 通过scalac 编译----->编译成.class文件,把.class文件和scala类库和java类库 到jvm上进行加载------->jvm到操作系统上加载
在这里插入图片描述

scala的sdk就是scala的编译器

启动scala 解释器
1 window +r
2 输入scala 密令

退出scala 解释器
输入:quit


定义变量
格式: val 或者 var 变量名:数据类型=值

注意: val 定义的变量是不可以重新赋值的
var 定义的变量时可以重新赋值的

惰性赋值
概念: 当有一些变量保存的数据较大时,但是不需要马上加载到jvm内存,可以使用惰性赋值来提高效率

格式:
lazy val / var 变量名 =值(表达式)


字符串

双引号

val / var 变量名 = “字符串”

插值表达式

var /val 变量名=s"${变量/表达式}"

三个引号

val /var 变量名 =""" 文本内容”“”


数据类型

java和scala定义变量的区别
在这里插入图片描述

== 和eq 的区别

== 比较的是值
equal 比较的是地址是
在这里插入图片描述

数据结构

基本数据类型
引用数据类型
在这里插入图片描述

在这里插入图片描述


条件表达
在这里插入图片描述

格式:和java一样

if (条件) 返回结构 else 返回结果
在这里插入图片描述

块表达式

值: 就是最后一个表达式的值
在这里插入图片描述


循环

格式 :
for ( i < - 集合或者数组){
// 打印的值
}

在这里插入图片描述

嵌套循环
在这里插入图片描述


守卫
就是 添加一些条件
格式:
for( i < - 数组/集合 if(条件) ){
// 表达式
}

for 推导式

for的推导式 将一批数据可以处理成一批新数据

格式: for( i <- 集合/数组) yield i * 10
在这里插入图片描述

while 循环

1 定义一个变量 (开始的位置)
var i= 0(开始的位置)

可以从奇数和偶数开始
2 while( i <- 10(到多少)){
println(i)
i =i+1
}


break continue

1
导包
在这里插入图片描述
2格式
break

breakable{

for( i <- 集合或者数组){
if(条件){
// 不符合的 break()
}else{
符合的}
}
}
在这里插入图片描述

continue 符合条件的或者不符合条件的进行跳出
格式

for( i < - 格式){

breakable{
if(条件) {
// 符合
break()
}else{
// 不符合的
}
}
}
在这里插入图片描述


方法的定义
在这里插入图片描述

注意:定义方法是返回值类型是不能省略的
在这里插入图片描述

例子
在这里插入图片描述

方法参数

1默认参数
在这里插入图片描述

2带名参数
在这里插入图片描述

3变长参数
在这里插入图片描述

方法的调用方式

1后缀吊用法
格式: 对象名.方法名
在这里插入图片描述
2 中缀调用法

在这里插入图片描述

在这里插入图片描述

花括号调用法
在这里插入图片描述
在这里插入图片描述

无括号调用法

在这里插入图片描述


函数的定义
在这里插入图片描述
函数的调用
在这里插入图片描述

方法可以转化为函数
格式: 方法名 _ 就转为函数了可以作为值进行传递


数组

定长数组

格式
在这里插入图片描述

给数组赋值
在这里插入图片描述

通过索引获取值
在这里插入图片描述

获取数组的长度
数组名.length

变长数组
1导包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

变长数组的操作
在这里插入图片描述
在这里插入图片描述
通过索引修改某个元素
数组名(index)=value(新的值)


数组的遍历

在这里插入图片描述
第二种通过索引
在这里插入图片描述
until 包含0 不包含最后一个
在这里插入图片描述

数组的常用算法
在这里插入图片描述

求和
在这里插入图片描述

最大值
在这里插入图片描述

最小值
在这里插入图片描述

升序和降序
在这里插入图片描述

元组
格式:
括号只有两个元素的时候使用箭头
在这里插入图片描述

访问元组用的是下划线
变量名._
元组元素的修改
在这里插入图片描述


列表(不可变)
格式:
一个不为空的列表
为空的列表
在这里插入图片描述

可变列表
在这里插入图片描述
在这里插入图片描述

可变列表的操作
在这里插入图片描述
获取第一个元素
在这里插入图片描述
添加一个元素到列表中
在这里插入图片描述

一个列表添加一个新的列表
一个列表删除一个元素
在这里插入图片描述

可变列表转为不可变列表
在这里插入图片描述

列表的超用操作(两种列表都可以使用的)
在这里插入图片描述

获取列表的首个和剩余的元素
在这里插入图片描述

反转
在这里插入图片描述

获取前缀和后缀
后缀:除了前几个 ,剩余的部分
在这里插入图片描述

扁平化操作
将一个列表中的多个列表处理成一个新的列表
在这里插入图片描述

例子
在这里插入图片描述

拉链 和拉开
拉链:使用zip 将两个列表,组合成一个元素为元组的列表
拉开: 将一个包含元组的列表,解开成包含两个列表的元祖
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

并集不去重
在这里插入图片描述
在这里插入图片描述

交集
在这里插入图片描述

差集
a-b 相同的删除 ,把a 剩余的存储起来
在这里插入图片描述


set
不可变集
创建
在这里插入图片描述

基本操作
在这里插入图片描述
在这里插入图片描述

减 一个元素
在这里插入图片描述

添加一个元素 及添加一个set 集合
在这里插入图片描述
在这里插入图片描述

可变集
导入包
在这里插入图片描述
在这里插入图片描述

map
不可变
在这里插入图片描述
元组创建map
在这里插入图片描述

可变map
在这里插入图片描述

修改key的value
在这里插入图片描述

用外循环遍历迭代
在这里插入图片描述

for循环
在这里插入图片描述

注意:迭代完了就没数据了

函数的编程

1foreach的遍历三种方式

在这里插入图片描述

在这里插入图片描述
要求
在这里插入图片描述


一种类型转为另外一种类型(旧的转为新的数据)
在这里插入图片描述

只出现一次,可以省略=》 和x
在这里插入图片描述

在这里插入图片描述

扁平化
在这里插入图片描述

过滤
在这里插入图片描述

排序
在这里插入图片描述

排序2
在这里插入图片描述

排序3(自定义排序)
在这里插入图片描述

group
在这里插入图片描述
在这里插入图片描述

聚合
在这里插入图片描述

聚合初始值
从什么时候开始计算
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《Scala函数编程》是一本非常实用的Scala编程书籍,旨在教读者如何使用Scala编程语言实现函数编程。该书通过具体的实例和案例来阐述Scala函数编程的核心概念和技术,包括函数编程基础、函数的高阶抽象、类型系统、模式匹配、并发编程、I/O 和异常处理等方面内容。这些知识点包含了Scala编程语言的重要概念,可以帮助读者深入掌握Scala函数编程的技术,并在实际应用中运用它们。此外,该书也涵盖了Scala代码风格和整洁性等方面,对编成良好的代码有很大的帮助。总之,这本书对于学习Scala函数编程的人来说是非常有实践价值的一本书籍。 ### 回答2: Scala函数编程的PDF是一本非常有价值的学习资料。对于想要深入学习Scala函数编程的开发者,这本书提供了全面详尽的指导和实践经验,帮助开发者理解函数编程的核心概念和思想,并将其应用于Scala程序开发中。 该书主要包括以下内容: 1.函数编程的基本概念和原则,如不可变性、高阶函数、currying、尾递归等等。 2.函数式数据结构和算法的实现,包括列表、栈、队列、树、图等等。 3.如何使用Scala语言支持函数编程的特性,如case class、模式匹配、参数化类型、协变和逆变等等。 4.如何使用Scala函数编程框架,如Akka、Spark等来构建高效的分布式应用。 这本书主要适合已经有一定Scala编程基础或者其他函数编程语言经验的开发者阅读,由于书中的内容较为深入和专业,对于初学者不太友好。但对于有一定基础的Scala开发者来说,该书是一本非常有价值的参考资料,可以帮助他们更深入地理解Scala函数编程,提高代码质量和开发效率。 ### 回答3: Scala是一种支持函数编程范式的编程语言,从而满足了编程语言发展中对于高度抽象和复杂数据处理的需求。Scala函数编程pdf是一个学习Scala函数编程理论和实践的重要资源。 Scala函数编程pdf包含Scala函数编程核心概念和技术,例如高阶函数、不可变性、模式匹配和递归等。它还涵盖了Scala函数编程中的一些常见问题和解决方案,以及Scala函数编程如何与面向对象编程 (OOP)相融合等。 Scala函数编程pdf还提供了丰富的实际案例,包括使用Scala函数编程技术实现算法、数据处理、Web应用程序、分布式编程等等。 总之,Scala函数编程pdf是Scala程序员学习和实践函数编程的重要资源,它提供了理论、实践和案例相结合的综合性学习体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值