Scala中Either两个子类Left/Right
Scala中有Left,Right两个类,继承于Either,主要用途是表示两个可能不同的类型(它们之间没有交集),Left主要是表示Failure,Right表示有,跟Some类型有点类似。
案例:
object EitherLeftRightExample extends App {/*** A simple method to demonstrate how to declare that a method returns an Either,* and code that returns a Left or Right.*/def divideXByY(x: Int, y: Int): Either[String, Int] = {if (y == 0) Left("Dude, can't divide by 0")else Right(x / y)}// a few different ways to use Either, Left, and Rightprintln(divideXByY(1, 0))println(divideXByY(1, 1))divideXByY(1, 0) match {case Left(s) => println("Answer: " + s)case Right(i) => println("Answer: " + i)}divideXByY(1, 1) match {case Left(s) => println("Answer: " + s)case Right(i) => println("Answer: " + i)//Left(Dude, can't divide by 0)//Right(1)//Answer: Dude, can't divide by 0//Answer: 1}}
分析:调用divideXByY方法,返回的是Either[String, Int],左边的String是 Left() 内部包含的信息。
右边的Int是 Right() 内部包含的信息。
Scala中Either两个子类Left/Right相关推荐
- Scala中使用两种方式对单词进行次数统计(wordCount)
使用Scala对单词数量进行统计: 假设有单词数组: val arr = Array("hello tom","hello jerry","hello ...
- map写法 scala语言_(转)scala中map与flatMap浅析
在函数式语言中,函数作为一等公民,可以在任何地方定义,在函数内或函数外,可以作为函数的参数和返回值,可以对函数进行组合.由于命令式编程语言也可以通过类似函数指针的方式来实现高阶函数,函数式的最主要的好 ...
- Scala中的柯里化
首先要区分Scala函数与方法的区别,这在Scala中是两个不同概念,只有理解了这两个概念才能理解柯里化. 方法 scala> def add(x:Int, y: Int) = x + y ad ...
- java类型转换答案,在java中支持两种类型的类型转换,自动类型转换和强制类型转换。父类转化为子类需要强制转换。...
在java中支持两种类型的类型转换,自动类型转换和强制类型转换.父类转化为子类需要强制转换. 更多相关问题 计算机病毒通过()传染扩散得极快,危害最大. 当一个现象的数量由小变大,另一个现象的数量相反 ...
- 编写一个抽象类Shape,声明计算图形面积的抽象方法。再分别定义Shape的子类Circle(圆)和Rectangle(矩形),在两个子类中按照不同图形的面积计算公式,实现Shape类中计算面积的方法
编写一个抽象类Shape,声明计算图形面积的抽象方法.再分别定义Shape的子类Circle(圆)和Rectangle(矩形),在两个子类中按照不同图形的面积计算公式,实现Shape类中计算面积的方法 ...
- 利用多态特性,编程创建一个手机类Phones,定义打电话方法call()。创建两个子类:苹果手机类IPhone和安卓手机类APhone,并在各自类中重写方法call(),编写程序入口main()方法
利用多态特性,编程创建一个手机类Phones,定义打电话方法call().创建两个子类:苹果手机类IPhone和安卓手机类APhone,并在各自类中重写方法call(),编写程序入口main()方法, ...
- Scala 中的函数式编程基础
主要来自 Scala 语言发明人 Martin Odersky 教授的 Coursera 课程 <Functional Programming Principles in Scala>. ...
- scala中使用Option、Some、None,避免使用null
避免null使用 大多数语言都有一个特殊的关键字或者对象来表示一个对象引用的是"无",在Java,它是null.在Java 里,null 是一个关键字,不是一个对象,所以对它调用任 ...
- Scala中那些令人头痛的符号
Scala中符号语法糖 初学Scala看到那些稀奇古怪的符号(e.g. <: , >: , <% , =:= , <:< , <%<, +T, ...
最新文章
- 最新县及县以上行政区划代码(截止2009年12月31日)
- spring20:Aspectj实现前置通知@Before
- 一个aov网用邻接矩阵表示_一起看看啥是图论算法-第一期:图的基本表示
- MFRC522开发笔记
- Vertical Menu ver4
- numpy如何直接在数组上进行添加_NumPy 论文登上了 Nature!
- 快速下载Spring官网下载dist.zip中所有jar,例如spring-5.2.10.RELEASE-dist.zip
- 那些年我们一起追逐的多线程(Thread、ThreadPool、委托异步调用、Task/TaskFactory、Parallerl、async和await)
- 通过url判断当前页,动态给导航加样式
- Redis持久化的原理及优化
- 三维重建:三维重建基础
- 老系统维护(一)[转]
- 平台打包整合成exe安装部署(java+mysql+tomcat+war)
- Chrome谷歌浏览器无法自动同步的解决办法
- 利用html+javascript开发桌面软件
- 网站赚钱秘密--SEO的运用
- c语言编写英雄联盟,怎么用C#或者C语言注册 英雄联盟 热键
- Ubuntu16.04下网易云音乐点击图标打不开——已解决
- VC MFC C++ MQTT VC编译MQTT VC调用MQTT dll eclipse-paho-mqtt
- Qt音视频开发06-海康sdk内核linux客户端