我试图弹出元组数组的第一个元素。我不确定这是最好的方法,主要是因为它不起作用,但也许有更好的解决方案?现在我正在尝试使用第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;
}
}
答案 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
)的东西。