12
我試圖用optparse-applicative解析Maybe String
,但我找不到任何地方如何處理Maybe
。我唯一發現的是添加默認值,但如果用戶沒有提供選項而不是""
,我真的需要一個Nothing
。有什麼辦法可以做到這一點?如何解析可能與optparse應用
下面是工作的代碼的示例:
import Options.Applicative
data Config = Config
{ cIn :: String
, cOut :: String
} deriving Show
configParser :: Parser Config
configParser = Config
<$> strOption (long "in" <> short 'i')
<*> strOption (long "out" <> short 'o')
main :: IO()
main = do
conf <- execParser (info configParser fullDesc)
print conf
然而,我想的參數是可選的,並且使用Maybe String
代替String
在Config
:
data Config = Config
{ cIn :: Maybe String
, cOut :: Maybe String
} deriving Show
我不太瞭解'optparse-applicative',但[本頁](https://hackage.haskell.org/package/optparse-applicative-0.11.0.2)建議應用'optional' combinator在'strOption'之上應該做你想做的事情。 – Jubobs
我沒有看到頁面底部有一個額外的文檔。這是行得通的。你可以發佈它作爲答案,我會接受它。 – mb14