在D中检索对象数组的第一个元素

时间:2015-04-09 05:43:32

标签: arrays tuples d

我试图弹出元组数组的第一个元素。我不确定这是最好的方法,主要是因为它不起作用,但也许有更好的解决方案?现在我正在尝试使用第0个元素的切片,但我不断得到Range Violation。我知道数组中有数据,我不知道如何处理这个错误。

auto codersChoice(uint year){
        Tuple!(uint, string, string, double)[] select;

        foreach (i, string geoLocation ; this.map.getLocations){
            auto t = getAllRowsByYearAndCountry(geoLocation, year, i);
            auto slice = t[0 .. 1];
            select ~= slice;
        }
    }

1 个答案:

答案 0 :(得分:1)

  

我一直在Range Violation。我知道数组中有数据,我不知道如何处理这个错误。

auto codersChoice(uint year){
        Tuple!(uint, string, string, double)[] select;

        foreach (i, string geoLocation ; this.map.getLocations){
            auto t = getAllRowsByYearAndCountry(geoLocation, year, i);
            auto slice = t[0 .. 1];
            select ~= slice;
        }
    }

RangeError返回空数组时,您显示的代码会抛出getAllRowsByYearAndCountry。当然,getAllRowsByYearAndCountry也可能会抛出RangeError

如果你确定getAllRowsByYearAndCountry没有返回空数组,那么请显示更多代码。最好是编译,链接和运行(并抛出RangeError)的东西。