[英]Scala case class, conditional Copy
我定義了一個case類和一個值:
scala> case class N(a:Int, b:Int)
defined class N
scala> val nnn = N(2,3)
nnn: N = N(2,3)
我想使用Option [Int]類型基於可選值t1和t2修改字段,這是我所做的:
val nnn1 = t1.map( x => nnn.copy( a = x)).getOrElse(nnn)
val nnn2 = t2.map( x => nnn1.copy( b = x)).getOrElse(nnn1)
有沒有鏡頭/單聲道/ Scalaz的通用方法?
一個好的方法值得
def someF(i:Int) = // a great computation with i :)
val na = t1.map(someF).getOrElse(nnn.a)
val newnnn = nnn.copy(a = na, b = t2.getOrElse(nnn.b))
在必須將一些F應用於t1的情況下,將其分開可能是一個好主意。 沒有適合您的鏡頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.