Получить функцию из имени функции в Flutter - PullRequest
0 голосов
/ 30 июня 2018

Для кроссплатформенного (iOS, android) проекта я рассматриваю использование Dart с UI-программированием в Flutter .

Для прямого перевода нынешнего кода Котлина я хочу вызывать функции по их именам. Чтобы быть более точным, я ищу, как написать функцию getFunctionByName так, чтобы следующий код выводил «Ответ 42».?

void function42(String s) {
    print(s + " 42.");
}

void main() {
    int number = 42;
    String calculatedFunctionName = "function" + number.toString();
    String calculatedArgument = "The answer is";
    Function f = getFunctionByName(calculatedFunctionName);
    f(calculatedArgument);
}

То, что я пытаюсь достичь, работает в Kotlin и, кажется, работает в Dart , но когда я попробовал связанный код Dart в проекте Flutter, импорт

import 'dart:mirrors';

не работает для меня. Есть целая нить об отражении во Флаттере , которую я интерпретирую так, что во время написания отражение не работает во Флаттере. Но может быть есть обходной путь для конкретной вещи, которую я хочу сделать?

1 Ответ

0 голосов
/ 30 июня 2018

Это невозможно во флаттере. Отключение флаттера dart:mirror для уменьшения двоичных файлов.

Вместо этого флаттер (и теперь angulardart) использует генерацию кода в качестве альтернативы.

Dart поставляется с действительно мощным инструментом для генерации кода: build

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...