Flutter: L oop через список - PullRequest
       15

Flutter: L oop через список

0 голосов
/ 06 августа 2020

Я пытаюсь l oop через список цветов. Когда l oop достигнет конца, я хотел бы перезапустить его или go в начало списка. Может кто-нибудь мне поможет, я новичок в Дарт и трепещу. Очень признателен!!! Заранее спасибо.

List<Color> color = ['Red', 'yellow', 'pink', 'blue'];

Так что, когда он станет синим, я бы хотел go вернуться к красному, если это возможно. Пожалуйста, помогите.

Ответы [ 2 ]

1 голос
/ 06 августа 2020

как вариант:

void main() {
  List<String> color = ['Red', 'yellow', 'pink', 'blue'];

  for (int i = 0; i < 10; i++) {
    print(color[i % color.length]);
  }
}

или вы можете написать расширение для List следующим образом:

void main() {
  List<String> color = ['Red', 'yellow', 'pink', 'blue'];

  for (int i = 0; i < 10; i++) {
    print(color.getElement(i));
  }
}

extension EndlessElements<T> on List<T> {
  T getElement(int index) {
    return this[index >= this.length ? index % this.length : index];
  }
}
0 голосов
/ 06 августа 2020

Вы можете использовать while l oop и получить индекс в списке, используя остаток.

Не уверен, каков ваш вариант использования, но если вы вызываете его в построителе или чем-то еще, вы можно просто использовать индекс% 4, чтобы выбрать цвет.

List<Colour> color = ['Red', 'yellow', 'pink', 'blue'];

  int count = 0;

  while(count < 8){
    print(color[count%4]);
    count = count + 1;
  }
...