我有configurer
支持連鎖式的,像這樣:鏈風格+斯卡拉選項
val configurer = Configurer("init").propA("a").propB(3).propC("bla-bla")
它的第三方的lib,我不能改變。
我有我的
案例類配置(propA:選項[字符串],PROPB:選項[INT],propC: 選項[字符串])
現在我需要用給定的config
對象構建我的configurer
,則應調用方法propX
,如果在config
中設置了相應的值。
以功能性的方式做到這一點的最佳方式是什麼?
我不喜歡這個
val configurer = Configurer("init")
val withPropA = config.propA.map(configurer.propA).getOrElse(configure)
val withPropB = config.propB.map(configurer.propB).getOrElse(withPropA)
val withPropC = config.propC.map(configurer.propC).getOrElse(withPropB)
只是覺得應該有一種優雅的方式。
這是一個蹩腳的API,只需將這個東西包裝在COnfigurer伴侶對象的'fromConfig'函數中並用它來完成:) – vptheron 2014-10-03 16:58:09