【问题标题】:Julia Inconsistent bounds check for slicesJulia 对切片的边界不一致检查
【发布时间】:2020-01-07 13:15:03
【问题描述】:

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

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

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

以上都按预期返回空数组

但这会导致BoundsError

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

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

Julia 版本:1.3.1

【问题讨论】:

    标签: julia slice


    【解决方案1】:

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

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

    您在第一组示例中索引了一个具有空范围的数组。在您的第二组示例中,您使用超出范围的范围进行索引,这与预期的错误一样。

    【讨论】:

      猜你喜欢
      • 2016-03-30
      • 2014-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多