TGViewer
Юрий Петров | ai engineering Юрий Петров | ai engineering @mobile_developing · 1.57K subscribers
Post #835 590

Forwarded from MADTeacher | Станислав Чернышев

Мало кто знает, но Dart, как и ряд других языков программирования, поддерживает концепцию функторов. То есть дает возможность вызвать экземпляр класса как обычную функцию. Для этого в теле класса следует объявить метод call с необходимой вам сигнатурой:
class Cat{
final String name;
final int age;

Cat({required this.name, required this.age});

int call() { // можно указывать входные аргументы
return age+1;
}
}


После такой махинации вызовите экземпляр класса Cat, используя следом за его именем круглые скобки:
void main() {
Cat cat = Cat(name: 'Tom', age: 5);
print(cat()); // 6
}

p.s. Т.к. Dart не поддерживает перегрузку методов, несколько функторов объявлять нельзя!

p.s.s. Долго думал, стоит ли добавлять в книгу материал про такой способ использования классов, т.к. в моей памяти есть лютые случаи использования такого подхода молодняком >_< Все таки решил, что добавлю... я не должен страдать в одиночестве😂😎
  • 👍 11
More from @mobile_developing
  1. Sep 26, 2026Ну погнали ☺️
  2. Sep 24, 2026Я давно в мобильной разработке и быстро замечаю баги в приложениях. Причём не в каких-то п…
  3. Sep 23, 2026Благодарю ребят за такие тёплые слова, модули про Hugging Face добавлю, я думаю будет очен…
  4. Sep 23, 2026Вышла Claude Opus 5.5 Anthropic вчера выкатила Opus 5.5. При выходе новой модели обычно вс…
  5. Sep 21, 2026Сейчас все хайпуют на мозге мухи дрозофилы) Для тех, кто не в курсе: 3 сентября Google Res…
  6. Sep 17, 2026GitHub переписал рантайм Copilot с TypeScript на Rust руками агентов 832 тысячи строк прод…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →