我有一个列表,像这样[('A',1),('B',2),..] 我想做一个关键值搜索。 我已经找到了查找,但它返回了一个'Maybe Int'。 那么是否有任何函数可以返回键的值,并返回正常的int?
答案 0 :(得分:1)
如果密钥不在列表中,您希望它返回什么?
有一个原因是查找返回Maybe Int
而不是Int - 来强制程序员处理失败案例。
处理may的一种简单方法是使用默认值,例如:
withDefaultValue = fromMaybe 0 (lookup key myList)
如果您100%确定该值在列表中,则可以使用fromJust
result = fromJust (lookup key myList)
如果列表可能不包含该项,但您无法处理该函数中代码中的失败,请将Maybe
从函数中传出,直到它到达代码的一部分为止可以处理失败。
答案 1 :(得分:0)
如果密钥不在列表中,该功能应该做什么?
如果您确定该密钥在列表中,那么
import Data.Maybe
并通过fromJust
运行结果(即Maybe Int)。你将得到一个简单的Int,当密钥不在列表中时,你会得到一个例外。