#flutter #dart
#flutter #dart
Вопрос:
При создании ненулевого пустого списка или массива, который рекомендуется использовать между этими двумя.
List newList = List();
List<Obstacle> obstacles = List<Obstacle>();
или
List newList = [];
List<Obstacle> obstacles = [];
или они оба делают одно и то же и оказывают одинаковое влияние на обработку и память.
Ответ №1:
Декларативный против Литеральные конструкторы
Насколько мне известно, нет никакой разницы между использованием литерального конструктора []
и декларативного конструктора List()
.
Оба имеют одинаковый результат, но я бы посоветовал вам использовать декларативный List()
конструктор. Потому что литеральный конструктор используется для предопределения нескольких значений в списке. Например: List myList = [1,2,3];
.
Поэтому, если вы хотите создать ненулевой список, используйте:
List myList = List();
Но если вы хотите определить некоторые начальные значения для своего списка, используйте конструктор literal:
List myList = [1,2,3];
Общие сведения
Краткая информация: списки являются общими, карты также являются общими.
Универсальный — это, в основном, когда вы хотите передать тип объекта в качестве параметра классу, функции или определению типа. Умные программисты используют это для написания повторно используемого кода.
Например, у меня есть Response
класс, который я использую во всем своем приложении, у Response
класса есть переменная данных. Но я хочу, чтобы он мог указывать Dart, где Response
класс содержит data
тип String
или данные типа int
.
Поэтому для достижения этой цели я бы сделал свой Response
класс a Generic
.
Вот пример универсального класса ответов. Переменная data может быть установлена по мере необходимости для любой ситуации в моем приложении.
Response<String> response = Response<String>();
//Defining a Generic's type is optional.
//So both statements work.
Response response = Response();
class Response<T> {
T data;
}
Почему дженерики?
Так что вы получаете удивительные функции безопасности статической компиляции Dart. Универсальные классы обеспечивают гибкость повторного использования класса в нескольких ситуациях, но при этом обеспечивают надежную безопасность компиляции.
Поэтому при объявлении a List
, если вы определяете, что это a List<int>
. Компилятор позаботится о том, чтобы вы случайно не попытались вставить String
в него a .
Комментарии:
1. Спасибо. Тебе действительно 14?😂
2. Ха-ха, мне сейчас 16, эта биография была обновлена 2 года назад. Теперь у меня есть 3 года опыта работы с Flutter! Проверьте мой веб-сайт: musausman.com
3. Вот веб-сайт, который я создал в Flutter Web: thefoodapp.co
4. Действительно хороший человек. musausman.com/convert-website-to-mobile-app в разделе «обнаружение в Интернете» на этой странице есть крошечная опечатка. Действительно классный сайт в целом.
5. Спасибо, я ценю это!