Scala中的部分功能
发布时间:2020-12-16 19:01:52 所属栏目:安全 来源:网络整理
导读:我只想澄清一下 Scala中部分定义的函数.我看过文档,它表示部分函数的类型是PartialFunction [A,B],我可以定义一个部分函数,??如 val f: PartialFunction[Any,Int] = {...} 我想知道,对于A和B类,A是一个参数,而B是一个返回类型?如果我有多个接受的类型,是否
我只想澄清一下
Scala中部分定义的函数.我看过文档,它表示部分函数的类型是PartialFunction [A,B],我可以定义一个部分函数,??如
val f: PartialFunction[Any,Int] = {...} 我想知道,对于A和B类,A是一个参数,而B是一个返回类型?如果我有多个接受的类型,是否使用orElse将部分函数链接在一起? 解决方法
在函数的集合理论视图中,如果函数可以将域中的每个值映射到范围内的值,则我们说该函数是一个总函数.可能存在一些功能无法将域中某些元素映射到范围的情况;这些功能称为部分功能.
以Scala文档中的示例为部分功能: val isEven: PartialFunction[Int,String] = { case x if x % 2 == 0 => x+" is even" } 这里定义了一个部分函数,??因为它被定义为仅将偶数整数映射到字符串.因此,部分函数的输入是一个整数,输出是一个字符串. val isOdd: PartialFunction[Int,String] = { case x if x % 2 == 1 => x+" is odd" } isOdd是类似于isEven定义的另一个部分函数,??但是对于奇数.同样,输出是一个字符串. 如果您有一个数字列表,例如: List(1,2,3,4,5) 并将isEven部分函数应用在您将获得的列表中作为输出 List(2 is even,4 is even) 请注意,并非原始列表中的所有元素都已被部分功能映射.但是,在某些部分功能无法将域中的元素映射到范围的情况下,您可能需要应用其他函数.在这种情况下,我们使用orElse: val numbers = sample map (isEven orElse isOdd) 现在你会得到作为输出: List(1 is odd,2 is even,3 is odd,4 is even,5 is odd) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |