Maybe常用方法
fromMaybe
描述:当 Maybe 值为 Nothing 时,返回一个默认值。
类型签名:
1 | fromMaybe :: a -> Maybe a -> a |
示例
1 | import Data.Maybe (fromMaybe) |
readMaybe
描述:解析字符串为指定类型(如 Int),如果解析失败则返回 Nothing。
类型签名:
1 | readMaybe :: Read a => String -> Maybe a |
示例
1 | import Text.Read (readMaybe) |
mapMaybe
描述:对列表中的每个元素进行转换,并过滤掉转换失败的元素。
类型签名:
1 | mapMaybe :: (a -> Maybe b) -> [a] -> [b] |
示例
1 | import Data.Maybe (mapMaybe) |
catMaybes
描述:将列表中所有 Just 的值提取出来,忽略 Nothing。
类型签名:
1 | catMaybes :: [Maybe a] -> [a] |
示例
1 | import Data.Maybe (catMaybes) |
maybe
描述:将 Maybe 转换为另一个值。第一个参数为 Nothing 的转换值,第二个参数为 Just 的转换函数。
类型签名:
1 | maybe :: b -> (a -> b) -> Maybe a -> b |
示例
1 | let result = maybe 0 (*2) (Just 5) -- 结果为 10 |
hoistMaybe
描述:将一个普通值转换为 Maybe 值:如果条件满足则返回 Just,否则返回 Nothing。
类型签名:
1 | hoistMaybe :: Bool -> a -> Maybe a |
示例
1 | hoistMaybe :: Bool -> a -> Maybe a |