зачем нам нужны вызываемые классы в dart

#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 для вызываемых классов (вызываемых экземпляров, на самом деле), кроме предоставления одного метода «быстрого доступа».