PartialFunction是Scala另一个有趣的函数,也非常的有用。
一个PartialFunction[A, B]类型的函数是一个一元函数,接收一个类型为A的参数,返回类型为B的值。但是X的值域可以不覆盖A的整个值域,可以只覆盖部分的值域。其中isDefinedAt可以测试是否一个值是否落在了定义的参数值域上。
如果用简单的白话来讲,就是一个PartialFunction只处理参数的一个子集。
PartialFunction是Scala另一个有趣的函数,也非常的有用。
一个PartialFunction[A, B]类型的函数是一个一元函数,接收一个类型为A的参数,返回类型为B的值。但是X的值域可以不覆盖A的整个值域,可以只覆盖部分的值域。其中isDefinedAt可以测试是否一个值是否落在了定义的参数值域上。
如果用简单的白话来讲,就是一个PartialFunction只处理参数的一个子集。
Scala中的协变逆变和Java中的协变逆变不一样,看起来更复杂。 本文对Scala中的这些概念做一总结。
首先看几个概念:
Scala是一门多范式(multi-paradigm)的编程语言。
Scala源代码被编译成Java字节码,所以它可以运行于JVM之上,并可以调用现有的Java类库。
洛桑联邦理工学院的Martin Odersky于2001年基于Funnel的工作开始设计Scala。Funnel是把函数式编程思想和佩特里网相结合的一种编程语言。Odersky先前的工作是Generic Java和javac。Java平台的Scala于2003年底/2004年初发布。该语言第二个版本,v2.0,发布于2006年3月。
2009年4月,Twitter宣布他们已经把大部分后端程序从Ruby迁移到Scala,其余部分也打算要迁移。这里有一篇文章解释Twitter为什么使用Scala编程语言。
Engineer-to-Engineer Series Programming Languages Programming Languages Scala Talks
Coursera把Scala作为服务器语言使用。Why we love Scala at Coursera
一些Scala学习资料:
大数据生态圈中的Kafka和Spark都是由Scala开发的,这也是我为什么学习Scala的原因之一。
作为一个十多年Java程序员,同时在学习Scala和go这两种语言。 学习的过程中感觉go语言太好学了, 入手很快, 而Scala的语法和类C语言如Java,C#等很不一样, 很多语法的技巧在里面。 基于此,我特地整理了这篇文章。 简单扼要的介绍Scala语言的知识点,尤其是和Java不太一样的地方。