iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java Scala偏函数与偏应用函数怎么使用
  • 162
分享到

Java Scala偏函数与偏应用函数怎么使用

2023-07-05 23:07:09 162人浏览 薄情痞子
摘要

这篇文章主要介绍“Java Scala偏函数与偏应用函数怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java Scala偏函数与偏应用函数怎么使用”文章能帮助大家解决问

这篇文章主要介绍“Java Scala偏函数与偏应用函数怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java Scala偏函数与偏应用函数怎么使用”文章能帮助大家解决问题。

偏函数

偏函数(Partial Function),是一个数学概念它不是"函数"的一种, 它跟函数是平行的概念。

Scala中的Partia Function是一个Trait,其的类型为PartialFunction[A,B],其中接收一个类型为A的参数,返回一个类型为B的结果。

例如:

    val pf: PartialFunction[Int, String] = {      case 1 => "One"      case 2 => "Two"      case 3 => "Three"      case _ => "Other"    }    println(pf(1))   //One    println(pf(2))   //Two    println(pf(3))   //Three    println(pf(4))   //Other

偏函数内部有一些方法,比如isDefinedAt、OrElse、 andThen、applyOrElse等等。

isDefinedAt

isDefinedAt : 这个函数的作用是判断传入来的参数是否在这个偏函数所处理的范围内。

刚才定义的pf来尝试使用isDefinedAt(),只要是数字都是正确的,因为有case _=>"Other"这一句。如果换成其他类型就会报错。

    val pf: PartialFunction[Int, String] = {      case 1 => "One"      case 2 => "Two"      case 3 => "Three"      case _ => "Other"    }    println(pf.isDefinedAt(1)) //true    println(pf.isDefinedAt(2)) //true    println(pf.isDefinedAt(3)) //true    println(pf.isDefinedAt(4)) //true    println(pf.isDefinedAt("1"))    

orElse

orElse : 将多个偏函数组合起来使用,效果类似case语句。

    val onePF: PartialFunction[Int, String] = {      case 1 => "One"    }    val twoPF: PartialFunction[Int, String] = {      case 2 => "Two"    }    val threePF: PartialFunction[Int, String] = {      case 3 => "Three"    }    val otherPF: PartialFunction[Int, String] = {      case _ => "Other"    }    val neWPF = onePF orElse twoPF orElse threePF orElse otherPF    println(newPF(1))  //One    println(newPF(2))  //Two    println(newPF(3))  //Three    println(newPF(4))  //Other

这样,newPF跟原先的pf效果是一样的。

andThen

andThen: 相当于方法的连续调用,比如g(f(x))。

pf1的结果返回类型必须和pf2的参数传入类型必须一致,否则会报错。

   val pf1: PartialFunction[Int, String] = {      case i if i == 1 => "One"    }    val pf2: PartialFunction[String, String] = {      case str if str eq "One" => "The num is 1"    }    val num = pf1 andThen pf2    println(num(1)) //The num is 1

applyOrElse

applyOrElse:它接收2个参数,第一个是调用的参数,第二个是个回调函数。如果第一个调用的参数匹配,返回匹配的值,否则调用回调函数。

  val pf: PartialFunction[Int, String] = {      case 1 => "One"    }    println(pf.applyOrElse(1, { num: Int => "two" }))  //One    println(pf.applyOrElse(2, { num: Int => "two" }))  //two

偏应用函数

偏应用函数(Partial Applied Function)也叫部分应用函数,跟偏函数(Partial Function)从英文名来看只有一字之差,但他们二者之间却有天壤之别。

部分应用函数, 是指一个函数有n个参数, 而我们为其提供少于n个参数, 那就得到了一个部分应用函数。

举个例子,定义好一个函数有3个参数,再提供几个有1-2个已知参数的偏应用函数

def add(x: Int, y: Int, z: Int) = x + y + z    // x 已知    def addX = add(1, _: Int, _: Int)    println(addX(2, 3)) //6    println(addX(3, 4)) //8    // x 和 y 已知    def addXAndY = add(10, 100, _: Int)    println(addXAndY(1)) //111    // z 已知    def addZ = add(_: Int, _: Int, 10)    println(addZ(1, 2)) //13

关于“Java Scala偏函数与偏应用函数怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Java Scala偏函数与偏应用函数怎么使用

本文链接: https://www.lsjlt.com/news/356208.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java Scala偏函数与偏应用函数怎么使用
    这篇文章主要介绍“Java Scala偏函数与偏应用函数怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java Scala偏函数与偏应用函数怎么使用”文章能帮助大家解决问...
    99+
    2023-07-05
  • JavaScala偏函数与偏应用函数超详细讲解
    目录偏函数isDefinedAtorElseandThenapplyOrElse偏应用函数偏函数 偏函数(Partial Function),是一个数学概念它不是"函数&q...
    99+
    2023-05-14
    Java Scala偏函数 Java Scala偏应用函数
  • python偏函数怎么使用
    这篇文章主要介绍python偏函数怎么使用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!说明当函数的参数太多,需要简化时,使用functools.partial可以创建一个新的函数。2、这个新的函数可以固定原始函数的...
    99+
    2023-06-20
  • JavaScript偏函数怎么用
    这篇文章给大家分享的是有关JavaScript偏函数怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。偏函数使用方法:偏函数和柯里化概念类似,个人认为它们区别在于偏函数会固定你传入的几个参数,再一次性接受剩下的...
    99+
    2023-06-27
  • Python中如何使用偏函数
    这篇文章将为大家详细讲解有关Python中如何使用偏函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。偏函数 partial 应用函数在执行时,要带上所有必要的参数进行调用。但是,有时参数可...
    99+
    2023-06-01
  • python偏函数partial用法
    目录1、什么是偏函数partial2、偏函数的作用3、偏函数的语法4、案例案例1案例21、什么是偏函数partial python中提供一种对于函数固定属性的函数   ...
    99+
    2024-04-02
  • Python返回函数、闭包、装饰器、偏函数怎么使用
    今天小编给大家分享一下Python返回函数、闭包、装饰器、偏函数怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.返...
    99+
    2023-07-02
  • python中什么是偏函数
    python偏函数是指只设置了一部分参数的函数,调用偏函数时,函数中的某些参数会被固定住,使用偏函数可以通过有效地固定那些预先确定的参数,来缓存函数参数,然后在运行时,当获得需要的剩余参数后,可以将他们解冻,传递到最终的参数中,从而使用最终...
    99+
    2024-04-02
  • oracle偏移函数的用法是什么
    Oracle的偏移函数是用于在查询结果中返回指定行的函数。它可以用于限制结果集中返回的行数,以及指定返回结果集中的起始位置。Orac...
    99+
    2023-10-07
    oracle
  • C语言函数加里化和偏函数应用实例分析
    今天小编给大家分享一下C语言函数加里化和偏函数应用实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。【名词解释】Curr...
    99+
    2023-06-17
  • Scala方法与函数怎么使用
    本篇内容主要讲解“Scala方法与函数怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Scala方法与函数怎么使用”吧!Scala 有方法与函数,二者在语义上的区别很小。Scala 方法是...
    99+
    2023-06-19
  • linux adjtimex详解时间偏差函数ntp同步与offset
    adjtimex是一个用来调整系统时钟的函数,它可以用于同步系统时间和调整时间偏差。adjtimex函数用于查询和设置内核中的时间相...
    99+
    2023-09-14
    Linux
  • 【6】装饰器、闭包、偏函数、变量作用域问
            【一】、装饰器思想 装饰器是其实想增加一个函数的功能,但是又不想变动原来函数的代码,就用装饰器。 比如:我们用别人的一个函数,又不是很满意,所以用装饰器装饰一下即可。   def fun1(): print(...
    99+
    2023-01-30
    变量 函数 作用
  • Scala递归函数怎么调用
    这篇文章主要介绍“Scala递归函数怎么调用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Scala递归函数怎么调用”文章能帮助大家解决问题。1. 概述Scala递归函数是一种函数可以调用自身的函数...
    99+
    2023-07-05
  • Scala方法与函数使用和定义详解
    目录一、方法的定义二、递归方法三、参数有默认值的方法四、可变参数个数的函数五、匿名函数六、嵌套方法七、偏应用函数(部分应用函数)八、高阶函数九、柯里化函数一、方法的定义 1.方法体中...
    99+
    2022-12-14
    Scala方法与函数 Scala方法 Scala函数
  •  js中toString()函数与valueOf()函数怎么使用
    本篇内容介绍了“ js中toString()函数与valueOf()函数怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!&n...
    99+
    2023-06-30
  • Java Math.round函数怎么使用
    Math.round函数是Java的一个数学函数,用于四舍五入取整数。Math.round函数有两种用法:1. 对于float或do...
    99+
    2023-08-14
    Java Math.round
  • java charat函数怎么使用
    在Java中,charAt方法用于返回指定位置的字符。它的使用方式如下:1. 首先,需要有一个字符串对象,例如:```javaStr...
    99+
    2023-09-22
    java
  • golang 函数命名如何应对不同团队成员的主观偏好?
    建立清晰的命名惯例至关重要。团队应遵守 go 语言指南,并关注可读性、理解性和一致性。具体命名惯例包括:使用描述性名称(例如:sum、addtolist)。使用动词短语(例如:calcu...
    99+
    2024-04-23
    函数命名 golang
  • sendmail函数与mail函数怎么在Linux中使用
    sendmail函数与mail函数怎么在Linux中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。环境  本机安装sendmail了, 但是没有启动。 其他机器上有ma...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作