F#访问数组第i个元素函数报错
F# access Array ith element function Error
我曾多次使用表达式 anArray.[i]
访问数组中的元素。
但是当我尝试制作一个非常非常简单的函数时突然出现错误。
let safeIndexIf anArray i =
anArray.[i]
我需要创建一个函数 returns 数组的第 i 个元素,所以我认为这很简单,但不...
错误:
运算符 'expr.[idx]' 已根据此程序点之前的信息用于不确定类型的对象。考虑添加更多类型约束
为什么这不起作用?我不知道这个错误是什么意思。我所知道的是,我已经做了很多次类似的事情来访问 anArray 的元素,所以为什么这次我不能?
意味着编译器类型推断无法确定anArray
确实是一个数组。
错误消息建议您添加类型注释,您可以这样做来表示 anArray
是一个通用数组:
let safeIndexIf (anArray : array<'a>) i =
anArray.[i]
如果您想避免类型注释,您可以尝试重写您的函数以使用具有相同行为的 Array.item
:
let safeIndexIf anArray i =
Array.item i anArray
我曾多次使用表达式 anArray.[i]
访问数组中的元素。
但是当我尝试制作一个非常非常简单的函数时突然出现错误。
let safeIndexIf anArray i =
anArray.[i]
我需要创建一个函数 returns 数组的第 i 个元素,所以我认为这很简单,但不...
错误:
运算符 'expr.[idx]' 已根据此程序点之前的信息用于不确定类型的对象。考虑添加更多类型约束
为什么这不起作用?我不知道这个错误是什么意思。我所知道的是,我已经做了很多次类似的事情来访问 anArray 的元素,所以为什么这次我不能?
意味着编译器类型推断无法确定anArray
确实是一个数组。
错误消息建议您添加类型注释,您可以这样做来表示 anArray
是一个通用数组:
let safeIndexIf (anArray : array<'a>) i =
anArray.[i]
如果您想避免类型注释,您可以尝试重写您的函数以使用具有相同行为的 Array.item
:
let safeIndexIf anArray i =
Array.item i anArray