Dart печать нескольких элементов списка одновременно

#list #dart

#Список #dart

Вопрос:

Как я могу ввести что-то подобное "print(list[1,4]);" в Dart?

Например:

 int main() {
  var products = new List(5);
  products[0] = "Laptop";
  products[1] = "Mouse";
  products[2] = "Keyboard";
  products[3] = "Monitor";
  products[4] = "Microphone";

  print(products[1]); // Mouse
  print(products[1,3]); // I want to see 'Mouse,Monitor'
}
  

Ответ №1:

Это напрямую не поддерживается в SDK, но вы можете легко создать расширение, например List , для добавления этой функции:

 void main() {
  final products = List<String>(5);
  products[0] = "Laptop";
  products[1] = "Mouse";
  products[2] = "Keyboard";
  products[3] = "Monitor";
  products[4] = "Microphone";

  print(products[1]); // Mouse
  print(products.selectMultiple([1,3]).join(',')); // Mouse,Monitor
}

extension MultiSelectListExtension<E> on List<E> {
  Iterable<E> selectMultiple(Iterable<int> indexes) sync* {
    for (final index in indexes) {
      yield this[index];
    }
  }
}
  

Вы не можете сделать так [1,3] , чтобы это (как в вашем собственном примере) было допустимым, поскольку [] оператор допускает только один аргумент. Поэтому вместо этого нам нужно создать метод, который принимает наши запрошенные индексы в качестве аргумента.