Список не полностью сопоставлен со строкой в dart

#flutter #dart

Вопрос:

Ввод:

 var message= constants.institutions['colleges'].map((e) => '$e : $count');
print(message);
 

Выход:

 (School of Excellence : 110, Boarding School : 254, High School : 1660, ..., Higher Secondary School : 512, KG : 750)
 

Я пытаюсь зарегистрировать список школ и численность учащихся (например). Это 25 школ.
К сожалению, это печать ... вместо других школ

Комментарии:

1. Да, название школы и численность учащихся объединены из разных разных списков

Ответ №1:

message вот Iterable<String> ответ, потому .map() что возвращает Iterable ответ . Если вы хотите увидеть полный результат, вы можете сделать что-то вроде:

 final message = constants.institutions['colleges'].map((e) => '$e : $count').toList();
// convert to a list
print(message);  // will now print all elements
 

или

 print(message.join('n'));  // join strings with a newline between each
 

Комментарии:

1. Ух ты! , Это работает и увлекательно. Можете ли вы объяснить основную причину получения ложного результата?

2.Если вы взглянете на документы для Iterable.toString() api.dart.dev/stable/2.13.1/dart-core/Iterable/toString.html : > Представление по умолчанию всегда содержит первые три элемента. Если в итерируемом элементе меньше ста элементов, он также содержит последние два элемента. Он не пытается распечатать их все, но выберет номер для печати в зависимости от размера

Ответ №2:

Ваши данные отображаются правильно. Вы получаете ... вывод, потому что ваши данные очень большие. Если вы попытаетесь отобразить и распечатать большой объем данных в Flutter, он просто напечатает первую и последнюю часть данных.

Комментарии:

1. Но мне нужно полностью преобразовать эту строку

2. Вы можете сделать что-то подобное: constants.institutions['colleges'].map((e) => print('$e : $count'));