Julia 中的 firstindex 有什么意义?

Ale*_*hin 42 julia

从文档中它说firstindex()找到集合的第一个索引。为什么不只使用 1?当它不是 1 时会出现什么情况?

Dav*_*ela 50

第一个索引不一定是 1,因为 Julia 支持自定义索引。要了解它为什么有用,您无法击败Tim Holy 的博客文章

自定义索引允许您在索引模式本身中对有关数据的信息进行编码:有时从 1 开始计数更自然,有时从 0 开始计数,有时从更任意的数字开始计数。

其他时候,例如在编写泛型算法时,您并不真正关心具体的索引。在这种情况下,你可以使用抽象,例如firstindexlastindexeachindex

大多数情况下,最好避免完全引用索引,而只迭代集合的元素(例如for x in xs)。

Julia 允许您对数据使用最有效的策略。


crs*_*nbr 16

有一些特殊的数组类型,例如OffsetArrays.jl可以具有任意索引。