我正在尝试检查我已做过的映射,看看是否有任何值与我发送的字匹配。\ n但是当没有找到实例时它应该返回零。相反,它会抛出Exception: Not_found.
并退出。
有什么方法可以捕捉到这个错误吗?我认为Some和None应该做的伎俩。
let word_count word =
match DictMap.find word word_mapping with
| None -> 0
| Some count -> count;;
答案 0 :(得分:2)
我认为DictMap
是应用the Map
functor的结果。使用try
- with
(而不是option
类型),因为find
会引发异常,而不是在找不到密钥时返回None
。
let word_count word = try DictMap.find word word_mapping with Not_found -> 0;;