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 Right println(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() 内部包含的信息

浙公网安备 33010602011771号