#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]
, чтобы это (как в вашем собственном примере) было допустимым, поскольку []
оператор допускает только один аргумент. Поэтому вместо этого нам нужно создать метод, который принимает наши запрошенные индексы в качестве аргумента.