
scala
数据的星辰大海
简单地做自己,踏实的做事情
展开
-
scala中函数柯里化(curry)
基本介绍函数编程中,接受多个参数的函数都可以转化为接受单个参数的函数,这个转 化过程就叫柯里化柯里化就是证明了函数只需要一个参数而已。其实我们刚才的学习过程中,已 经涉及到了柯里化操作。不用设立柯里化存在的意义这样的命题。柯里化就是以函数为主体这种思想 发展的必然产生的结果。(即:柯里化是面向函数思想的必然产生结果)函数柯里化快速入门编写一个函数,接收两个整数,可以返回两个数的乘积,要求:使用常规的方式完成使用闭包的方式完成使用函数柯里化完成def mul(x: Int, y:原创 2021-05-23 20:23:50 · 320 阅读 · 0 评论 -
scala中闭包
基本介绍基本介绍:闭包就是一个函数和与其相关的引用环境组合的一个整体(实体)。案例演示//1.用等价理解方式改写 2.对象属性理解def minusxy(x: Int) = (y: Int) => x - y //f函数就是闭包. val f = minusxy(20) println("f(1)=" + f(1)) // 19 println("f(2)=" + f(2)) // 18代码小结第1点(y: Int) => x – y返回的是一个匿名函数 ,因为该函数原创 2021-05-23 20:17:12 · 583 阅读 · 0 评论 -
scala中高阶函数
基本介绍能够接受函数作为参数的函数,叫做高阶函数 (higher-order function)。可使应用 程序更加健壮。高阶函数基本使用//test 就是一个高阶函数,它可以接收f: Double => Doubledef test(f: Double => Double, n1: Double) = { f(n1) }//sum 是接收一个Double,返回一个Double def sum(d: Double): Double = { d + d }val原创 2021-05-23 20:12:26 · 270 阅读 · 0 评论 -
scala中匿名函数
基本介绍没有名字的函数就是匿名函数,可以通过函数表达式 来设置匿名函数应用实例val triple = (x: Double) => 3 * x println(triple(3))说明(x: Double) => 3 * x 就是匿名函数(x: Double) 是形参列表, => 是规定语法表示后面是函数体, 3 * x 就是函数 体,如果有多行,可以 {} 换行写.triple 是指向匿名函数的变量。...原创 2021-05-23 20:07:56 · 403 阅读 · 0 评论 -
scala中作为参数的函数
基本介绍函数作为一个变量传入到了另一个函数中,那么该作为参数的函数的类型是: function1,即:(参数类型) => 返回类型应用实例//说明 def plus(x: Int) = 3 + x //说明 val result1 = Array(1, 2, 3, 4).map(plus(_)) println(result1.mkString(","))应用实例小结map(plus()) 中的plus() 就是将plus这个函数当做一个参数传给了map,_ 这里代表从集合中遍历原创 2021-05-23 20:05:58 · 362 阅读 · 0 评论 -
scala中偏函数
偏函数的定义1)在对符合某个条件,而不是所有情况进行逻辑操作时,使用盘函数是一个不错的选择2)将包在大括号的一组case语句封装为函数,我们称之为偏函数,它只对会作用于执行类型的参数或指定范围的参数实施计算,超出范围的值会忽略(未必忽略看具体的逻辑)3)偏函数在scala中是一个特质PartialFuncation提出一个需求,引起思考给你一个集合val list = List(1, 2, 3, 4, “abc”) ,请完成如下要求:将集合list中的所有数字+1,并返回一个新的集合要求忽略掉原创 2021-05-21 18:05:07 · 495 阅读 · 0 评论 -
scala中 yield
概述scala语言的for语法很灵活. 除了普通的直接对集合的循环, 以及循环中的判断和值返回. 非常灵活.for 可以通过yield(生产)返回值, 最终组成for循环的对象类型.for 循环中的 yield 会把当前的元素记下来,保存在集合中,循环结束后将返回该集合。如果被循环的是 Map,返回的就是Map,被循环的是 List,返回的就是List,以此类推。守卫( guards) (for loop ‘if’ conditions)可以在 for 循环结构中加上 ‘if’ 表达式, 和yiel原创 2021-05-21 08:00:09 · 674 阅读 · 0 评论 -
猴子吃桃--递归
有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一个!以后每天猴子都吃其中的一半,然后再多吃一个。当到第十天时,想再吃时(还没吃),发现只有1个桃子了。问题:最初共多少个桃子? package com.pingan.chapter.shangguigu.demo01digui/** * @author LIUSHUJIE * @date 2019/7/22 11:16 */obje...原创 2019-07-22 11:50:01 · 334 阅读 · 0 评论 -
深入理解Scala中的隐式转换系统
https://blog.youkuaiyun.com/a2011480169/article/details/52999745转载 2019-06-23 18:09:34 · 139 阅读 · 0 评论 -
隐式转换函数
隐式转换函数是以implicit关键字声明的带有单个参数的函数。这种函数将会自动应用,将值从一种类型转换为另一种类型object Demo1Main { def main(args: Array[String]): Unit = { val num:Int = f1(3.5); val num1:Int = 3.5; print(num) } implic...原创 2019-06-23 18:08:10 · 965 阅读 · 0 评论