Посмотрите на следующие примеры ...
Пример 1: Следующий код НЕ использует задержанное расширение, поэтому переменные в цикле for расширяются только один раз. Это означает, что %Count%
всегда будет расширяться до 0
в каждой итерации цикла, независимо от того, что мы делаем с ним с помощью команды set:
@echo off
set COUNT=0
for %%v in (1 2 3 4) do (
set /A COUNT=%COUNT% + 1
echo Count = %COUNT%
)
pause
Итак, этот скрипт выведет:
Count = 0
Count = 0
Count = 0
Count = 0
Это не значит, что этот цикл должен работать.
Пример 2: С другой стороны, если мы используем задержанное расширение, мы имеем следующий скрипт, который будет работать как ожидаемый.
setlocal ENABLEDELAYEDEXPANSION
set COUNT=0
for %%v in (1 2 3 4) do (
set /A COUNT=!COUNT! + 1
echo Count = !COUNT!
)
pause
и, как ожидается, он выведет:
Count = 1
Count = 2
Count = 3
Count = 4
Когда вы используете ENABLEDELAYEDEXPANSION
и разворачиваете переменную, используя !
вместо %
, переменная повторно расширяется каждый раз, и все работает так, как предполагается.
Ответ зависит от того, какое у вас определение «родной».
Для некоторых «родной» означает использование виджетов пользовательского интерфейса, предоставляемых ОС.
Приложения Flutter являются «нативными» в том смысле, что они компилируются в собственные машинные инструкции, а не интерпретируются виртуальной машиной. Для приложений Android и iOS это означает, что они скомпилированы в код ARM.
С точки зрения точности это означает, что виджеты пользовательского интерфейса Flutter могут выглядеть или вести себя не так, как виджеты пользовательского интерфейса операционной системы. Однако с точки зрения производительности виджеты пользовательского интерфейса Flutter могут быть (или, возможно, более ) более производительными, чем ОС.
Дополнительная литература: Передача Flutter вашей компании или клиенту: 3. Собственные приложения
.Согласно этой статье, нативное приложение лучше, чем флаттер, с точки зрения производительности.
Так что я думаю, Вопрос к вашему ответу будет отрицательным, но Flutter, безусловно, является «достаточно хорошим решением» для большинства случаев. Не было бы случая, чтобы вы могли заметить разницу в производительности человека, если вы не разрабатываете приложение с интенсивным использованием процессора.