Julia切片的边界不一致检查

问题描述 投票:2回答:1

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

为什么以下内容不会引起异常:

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

以上均按预期返回空数组

但是这会导致BoundsError

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

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

Julia版本:1.3.1

julia slice
1个回答
1
投票

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

a:b的任何范围a > b为空。根据getindex的定义,对具有空范围的数组建立索引将导致空数组。

您在第一组示例中为具有空范围的数组建立索引。在第二组示例中,您使用超出范围的索引编制索引,该错误出乎预期。

© www.soinside.com 2019 - 2024. All rights reserved.