#dart #flutter
#dart #flutter
Вопрос:
Для чего нужны вызываемые классы в dart lang? Ниже приведен пример кода, доступный на официальном сайте dart.
class WannabeFunction {
call(String a, String b, String c) => '$a $b $c!';
}
main() {
var wf = new WannabeFunction();
var out = wf("Hi","there,","gang");
print('$out');
}
Насколько полезно добавлять функцию вызова и вызывать ее с помощью класса вместо создания самой функции в классе
Ответ №1:
Это может быть полезно для создания «именованных функций»:
class _Foo {
const _Foo();
void call(int bar) {}
void named() {}
}
const foo = _Foo();
Что позволяет обоим:
foo(42);
и
foo.named();
Комментарии:
1. Спасибо. Так что в принципе это не так уж и полезно, но это возможно как простой побочный эффект языкового дизайна? Это ничего не добавляет, мы не можем так же легко сделать по-другому с тем же объемом кода, верно?
2. @ThinkDigital Вы пропустили последний абзац? 🙂
3. Нет, я прочитал это, но я тоже не вижу варианта использования для этого. Статическая функция так же хороша, как и кажется, если только я не хочу сохранить некоторое состояние внутри функции, которое в этот момент совпадает с любым другим объектом
4. У функций уже есть имена. Я думаю, вопрос в том, есть ли usecase для вызываемых классов (вызываемых экземпляров, на самом деле), кроме предоставления одного метода «быстрого доступа».