我有以下函数可以在数组中查找索引:
let numbers_array = [| "1"; "2"; "3"|]
let findIndex arr elem = arr |> Array.findIndex ((=) elem)
let s = "123"
findIndex numbers_array (string s.[0]))
然而,如果我尝试运行
findIndex numbers_array (string s.[10]))
它会超出边界并抛出以下错误:
System.Collections.Generic.KeyNotFoundException:未在集合中找到满足谓词的索引。
我如何使我的函数不抛出异常,而是执行类似 printf 语句的操作?
tryFindIndex
绝对是正确的选择。如果您不想更改函数的签名,可以在tryFindIndex
返回None
的情况下使用printf
,然后返回 -1。(请参见下面基于此的建议答案。) - Brian Berns