내가 알 수있는 한 Scalaz의 \/
에는 get
방법이 없습니다. 때로는 \/
에 포함 된 값이 올바른 값이고, getOrElse
을 사용하고 싶지 않은 경우도 있습니다. 나는 그것을 직접 얻고 싶다.Scalaz는 왜 getOrElse를 가지고 있지만 얻지 못합니까?
("3".right[Int]) getOrElse("123123123") // 3
if (t.isRight) t.get // compilation error, no get method
올바른 값을 보장받을 수있는 경우 어떻게 얻을 수 있습니까?
값을 얻을 수있는 방법은 두 가지가 있지만 둘 다 조금 자세하게 표시됩니다.
1 : 변화 스칼라 어느
val t = "3".right[Int]
val either = t.toEither
if (either.isRight) either.right.get
else either.left.get
2 : getOrElse
("3".right[Int]) getOrElse("123123123") // but for some cases I don't have this default value
지도 방법이 있습니까? – Basilevs
하지만지도는 여전히 올바른 투영법을 사용하지만지도의 반환 유형은 올바른 값의 유형 대신 여전히 \/유형입니다. –
안전하지 않은 get을 수행해야한다면'getOrElse (sys.error ("No such"))'와 같은 것을 할 수 있습니다. 이것은 실제로 get을하는 것과 동일하지만 아무런 값도 없을 때 일어나는 일에 대해 더 명백하게 표현합니다. (=> 예외) –