我正在编写一些使用数组视图和切片的代码,但是遇到了一些不一致之处。
为什么以下内容不会引起异常:
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
的定义,对具有空范围的数组建立索引将导致空数组。
您在第一组示例中为具有空范围的数组建立索引。在第二组示例中,您使用超出范围的索引编制索引,该错误出乎预期。