4

例如我有以下记录

data Rec = Rec
    { _a :: Int
    , _b :: Int
    , _c :: Int
    } deriving (Show, Eq)

makeLenses ''Rec

我只看到了两种构建新值的方法:

  • Rec{_a=1,_b=2,_c=3}
  • Rec 1 2 3

如果记录字段的数量超过一对并且下划线在第一个中看起来不自然,则第二个变体看起来不太好。

还有其他方法可以构造记录值吗?

4

1 回答 1

4

如果这对您的类型有意义,那么Default实例可能是一个好方法。然后你可以做

   def & a.~1
       . b.~2
       . c.~3
于 2014-01-27T13:07:00.710 回答