我正在编写一些使用数组视图和切片的代码,但遇到了一些不一致的问题。
为什么以下不会导致异常:
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:b
a > b
的范围都是空的。根据getindex
的定义,为具有空范围的数组编制索引将导致空数组。
在第一组示例中为具有空范围的数组编制索引。在第二组示例中,您使用越界范围进行索引,该范围按预期出错。