我收到类似无效值的范围错误:不在范围16..17,包括范围:19错误:RangeError(结束):

时间:2020-07-01 08:49:57

标签: flutter dart

我正在使用Dart键盘使用子列表显示列表项,但是我遇到范围错误,这是我的代码,请帮助我。

void main() {
  var list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q','f','e','y'];

  for(int i=0;i<list.length;i++) {
    if(i.isEven && i<list.length-1)
      print(list.sublist(i,i+2)); 
    else 
      print(list.sublist(i,i+3));
  }
}

1 个答案:

答案 0 :(得分:2)

您尝试使用i + 3访问列表之外的某些项目。使用i<list.length-2将允许编译器在尝试打印值之前检查项目是否在列表中。

void main() {
  var list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q'];

  for(int i=0;i<list.length;i++) {
    if(i.isEven && i<list.length-2)
      print(list.sublist(i,i+2));
    else if(i<list.length-2)
      print(list.sublist(i, i+3));
  }
}