我有这样的数据结构
data Sample = Sample { a :: String , b :: String }
Run Code Online (Sandbox Code Playgroud)
和一个功能
mkSample :: String -> String -> Sample
mkSample a b = Sample a b
Run Code Online (Sandbox Code Playgroud)
我想为a,b提供一些默认值,以防调用函数不提供它们,例如
mkSample :: String -> Sample
mkSample a = Sample a "test"
Run Code Online (Sandbox Code Playgroud)
1)我觉得这个解决方案不是优雅的,我还有什么其他选择。2)我如何为b创建一个mkSample,因为类型与a的类型相同。
data Sample = Sample { a :: String , b :: String }
defaultSample :: Sample
defaultSample = Sample "test" "value_b"
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用记录语法:
let mySample = defaultSample { b = "custom value" }
...
Run Code Online (Sandbox Code Playgroud)