最佳答案
nth
被弃用的原因是Seq.nth
和List.nth
的类型签名不同,so nth
was deprecated in favor of item
以免混淆。 (在该文档中搜索单词“nth”以查找讨论)。在某些时候显然还有一个 Array.nth
函数,但它不再出现在 MSDN 上的 F# 文档中,所以我无法告诉您它的签名是什么。
Seq.nth : int -> seq<'T> -> 'T
List.nth : 'T list -> int -> 'T
注意List.nth
的定义方式,不能做someList |> List.nth 5
。 Seq.nth
以正确的顺序获取其参数,因此 someSeq |> Seq.nth 5
是可能的,但是让这两个函数以不同的顺序获取它们的参数会导致困惑。为避免这种混淆,nth
已被弃用并替换为 item
,后者对列表、seq 和数组具有相同的签名。 (是的,someArray |> Array.item 5
是可能的,即使您通常只是将其写为 someArray.[5]
)。
关于f# - seq.nth 和 seq.item 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49888156/