首页 > 其他分享 >假期学习记录06

假期学习记录06

时间:2024-01-20 23:01:09浏览次数:30  
标签:06 函数 val scala 假期 记录 List Int num

  将Scala剩下的函数式编程进行学习

函数式编程

函数字面量

123:整数自变量

1.23 浮点数自变量

'A' 字符自变量

...

函数自变量:定义一个变量一般去定义一个函数,使得函数也像其他自变量一般有了值,同样拥有类型和值

函数的类型和值

示例:

def counter(value: Int): Int = {
  value += 1             //示例,会报错
}

类型:

输入参数:Int

输出参数:Int

表示为:(Int) => Int

值:去掉函数声明

(value) => { value += 1}

用声明变量的方法去声明:

//       输入类型  输出类型     函数的值     
val counter: Int => Int = {(value) => value += 1}

匿名函数:Lambda表达式

//(参数) => 表达式 
(num: Int) => num * 2

把匿名函数存在变量里

scala> val myNumFunc: Int => Int = (num: Int) => num * 2
val myNumFunc: Int => Int = $Lambda$1066/0x000002a890534418@33f349ae

scala> println(myNumFunc(3))
6

scala语可以进行推断值,可以简写为以下的方式

scala> val myNumFunc1 = (num: Int) => num * 2
val myNumFunc1: Int => Int = $Lambda$1084/0x000002a89053ce40@11c25846

scala> println(myNumFunc1(3))
6

scala>
scala> val myNumFunc2: Int => Int = (num) => num * 2
val myNumFunc2: Int => Int = $Lambda$1085/0x000002a89053f818@4b7a4c83

scala> println(myNumFunc2(3))
6

scala>

但如果省略到无法进行推断,那就进行报错

闭包

val addMore = (x:Int) => x + more

本质:函数内部调用函数外部的一些值,并且可以在函数外部改变函数的值

占位符语法

用下划线"_"作为一个或多个参数占位符

针对集合的操作

遍历操作:

val list = List(1,2,3,4,5)
// for进行遍历
for(elem <- list){
  println(elem)
}
// foreach进行遍历
list.foreach(elem =>{
  println(elem)
})

....

map操作和flatMap操作

map操作是针对于集合的典型变换操作,进行依次变换

scala> val book = List("Hadoop","Hive","HDFS")
val book: List[String] = List(Hadoop, Hive, HDFS)

scala> book.map(s => s.toUpperCase)
val res3: List[String] = List(HADOOP, HIVE, HDFS)

 

进行依次变换,将book的每一个元素进行取出来,然后进行变换,再进行存储

flatMap:将多个集合挤压为一个字符

scala> val books = List("Hadoop","Hive","HDFS")
val books: List[String] = List(Hadoop, Hive, HDFS)

scala> books flatMap(s => s.toList)
val res0: List[Char] = List(H, a, d, o, o, p, H, i, v, e, H, D, F, S)

scala>

首先,先进行tolist操作:

在进行挤压:

filter操作

进行过滤操作

reduce操作

对集合元素进行归约

reduceLeft 从头部开始操作

reduceRight 从尾部开始操作

fold操作

函数式编程实例

标签:06,函数,val,scala,假期,记录,List,Int,num
From: https://www.cnblogs.com/JIANGzihao0222/p/17977302

相关文章

  • 假期学习记录05
    学习了Scala剩下的内容:模式匹配可以对表达式类型进行匹配matchvalcolorNum=1valcolorStr=colorNummatch{case1=>"red"case2=>"green"case3=>"yellow"case_=>"NotAllowed"//什么也没有匹配上}可以在match使用变......
  • Ubuntu20.04静态编译Boost记录
    下载Boost源码地址:https://www.boost.org/users/history/version_1_72_0.html指定安装位置./bootstrap.sh--prefix=/usr/local/boost-1-72-0编译release版本的boost库./b2toolset=gcclink=staticruntime-link=staticthreading=multi开始编译sudo./b2install--......
  • 初中英语优秀范文100篇-064WeChat,a New Way of Life-微信,一种新的生活方式
    PDF格式公众号回复关键字:SHCZFW064记忆树1Inmyopinion,usingWeChattochatisanewwayoflife.翻译在我看来,使用微信聊天是一种新的生活方式。简化记忆微信句子结构Inmyopinion介绍性短语,用于表达作者的观点主语:"usingWeChattochat"(使用微信聊天)......
  • 记录--移动端 H5 Tab 如何滚动居中
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助移动端H5Tab如何滚动居中Tab在PC端、移动端应用都上很常见,不过Tab在移动端比PC端更复杂。为什么呢?移动端设备屏幕较窄,一般仅能展示4~7个Item。考虑到用户体验,UI往往要求程序员实现一个功能——......
  • CPU跑分工具:SPEC2006
    一.工具介绍前言SPEC2006benchmark是SPEC新一代的行业标准化的CPU测试基准套件。重点测试系统的处理器,内存子系统和编译器。这个基准测试套件包括的SPECint基准和SPECfp基准。主要依赖于gcc,g++,gfortran并与其版本息息相关。其中SPECint2006基准包含12个不同的基准测试和SP......
  • 记录一下 ArrayBlockingQueue 消息堆积的问题
    前言由于之前这个系统的日志记录是被领导要求写表的,在不影响系统性能的前提下,日志的入库操作肯定是要改成异步进行的,当时利用ArrayBlockingQueue+线程+AOP简单的去实现了一下,但是初版代码测试下来发现了一个很严重的问题,就是日志丢失的问题,本文由此而来。初步构思代码实现逻辑实......
  • 2024-01-20:用go语言,小扣在探索丛林的过程中,无意间发现了传说中“落寞的黄金之都“, 而
    2024-01-20:用go语言,小扣在探索丛林的过程中,无意间发现了传说中"落寞的黄金之都",而在这片建筑废墟的地带中,小扣使用探测仪监测到了存在某种带有「祝福」效果的力场,经过不断的勘测记录,小扣将所有力场的分布都记录了下来,forceField[i]=[x,y,side],表示第i片力场将覆盖以坐标......
  • KBP206-ASEMI小功率家用电源KBP206
    编辑:llKBP206-ASEMI小功率家用电源KBP206型号:KBP206品牌:ASEMI正向电流(Id):2A反向耐压(VRRM):600V正向浪涌电流:60A正向电压(VF):1.10V引脚数量:4芯片个数:4芯片尺寸:50MIL功率(Pd):小功率设备封装:KBP-4工作温度:-55°C~150°C类型:插件、整流扁桥、小电流KBP206描述:ASEMI品牌KBP206是采用工艺芯片......
  • KBP206-ASEMI小功率家用电源KBP206
    编辑:llKBP206-ASEMI小功率家用电源KBP206型号:KBP206品牌:ASEMI正向电流(Id):2A反向耐压(VRRM):600V正向浪涌电流:60A正向电压(VF):1.10V引脚数量:4芯片个数:4芯片尺寸:50MIL功率(Pd):小功率设备封装:KBP-4工作温度:-55°C~150°C类型:插件、整流扁桥、小电流KBP206描述:ASEMI品牌KBP......
  • 初中英语优秀范文100篇-063Persistence Makes My Life Better-坚持让我的生活更美好
    PDF格式公众号回复关键字:SHCZFW063记忆树1Persistenceislikeateacherofmine.翻译坚持就像我的一位老师简化记忆坚持句子结构主语:"Persistence"(坚持)谓语:"islike"(像是)补语:"ateacherofmine"(我的一位老师)2Itteachesmealotandmakesm......