朱莉娅不一致的边界检查切片



我正在编写一些使用数组视图和切片的代码,但遇到了一些不一致的问题。

为什么以下不会导致异常:

a = [1,2]
@show a[3:end]
@show a[4:end]

以上都按预期返回空数组

但这会导致BoundsError

a = [1,2]
@show a[2:3]

为什么切片的第一个索引允许大于数组本身的大小,但 Julia 似乎对最后一个索引大于大小有问题?

朱莉娅版本:1.3.1

x[c:end]getindex(x, UnitRange(c, lastindex(x)))的语法。

任何a:ba > b的范围都是空的。根据getindex的定义,为具有空范围的数组编制索引将导致空数组。

在第一组示例中为具有空范围的数组编制索引。在第二组示例中,您使用越界范围进行索引,该范围按预期出错。

最新更新