2
較短的方式是否有寫下面的代碼片段的短/清潔方式:遍歷嵌套的紀錄,也許
fromMaybe "" $ fmap (^. fullName) (bi ^. bookerContact)
這裏bi ^. bookerContact
可能導致Maybe Contact
紀錄,這也是爲什麼要fmapped ^. fullName
需求。在嵌套遍歷之後,如果我們以Nothing
結尾,我們使用fromMaybe ""
將其默認爲空字符串。
嗯......我不清楚是怎麼型雙的'^。 bookerContact._Just.fullName'即將成爲'Text'。它不應該是'也許文本'? –
'^。 _Just'在'Maybe Text'上可能會產生一個''''然而''。 _Just'超過'Maybe Int'會導致以下錯誤 - '由於使用'_Just''而沒有引發(Monoid Int)的實例是否有可能以遍歷整個遍歷的方式遍歷一個'Maybe'在不依賴於「Monoid」魔法的情況下產生'Maybe'? –
@SaurabhNanda「魔法」是'Maybe Text'被摺疊(爲了比較,''「foo」,「bar」] ^。遍歷結果爲'「foobar」')。如果你喜歡得到'Maybe Text'而不是摺疊它,使用'(^?)'而不是'(^。)',就像答案中的第二和第三個變體一樣。 (根據你可以使用的魔法數量,在這種情況下,你可能會看到'foldOf'作爲對'(^。)'的改進) – duplode