任何人都可以向我展示一个使用 .. 在列表中搜索项目的工作示例,List.find
如果找到则打印“找到”。
令人惊讶的是,我在文档中没有找到它的使用示例,在谷歌上也没有找到,在 SO 上只有 1 个让我感到困惑并给出错误。我只需要一个基本的工作示例即可。
任何人都可以向我展示一个使用 .. 在列表中搜索项目的工作示例,List.find
如果找到则打印“找到”。
令人惊讶的是,我在文档中没有找到它的使用示例,在谷歌上也没有找到,在 SO 上只有 1 个让我感到困惑并给出错误。我只需要一个基本的工作示例即可。
如果不需要保存找到的元素,可以使用 List.exists:
if(List.exists (fun i -> i = 1) [1;2;3])
then print_endline ("Found")
else print_endline ("Not found")
或 List.mem:
if(List.mem 1 [1;2;3])
then print_endline ("Found")
else print_endline ("Not found")
很多反对票?投票者不应该在评论中说明原因吗?
无论如何,这是一个解决方案。
由于 List.find 会Not_found
在未找到元素时引发,因此您应该在try ... with
块中使用它:
try
let elem = List.find (fun i -> i = 1) [1;2;3] in
print_endline ("Found integer " ^ (string_of_int elem))
with
Not_found ->
print_endline "Found no element"
该(fun i -> i = 1)
部分是一个函数,它获取一个元素(来自列表)并将其与您尝试查找的元素应持有的任何条件进行比较。也可以是(fun i -> i > 2)
etc。当然,如果列表是字符串列表,你会使用(fun s -> s = "my_keyword")
orso。(您可能还想在 OCaml 中搜索关于平等的信息。)