В Java я могу сделать что-то вроде
derp(new Runnable { public void run () { /* run this sometime later */ } })
и «запустить» код в методе позже. Это трудная задача (анонимный внутренний класс), но это можно сделать.
Есть ли в Go что-то, что может облегчить передачу функции / обратного вызова в качестве параметра?
containingObject::instanceMethodName
): docs.oracle.com/javase/tutorial/java/javaOO/…Ответы:
Да, рассмотрим некоторые из этих примеров:
Play: http://play.golang.org/p/XNMtrDUDS0
Тур: https://tour.golang.org/moretypes/25 (Закрытие функций)
источник
Вы можете передать функцию в качестве параметра функции Go. Вот пример передачи функции в качестве параметра другой функции Go:
Вы можете попробовать это по адресу: https://play.golang.org/p/9mAOUWGp0k
источник
Вот пример реализации «Карта» в Go. Надеюсь это поможет!!
источник
Вот простой пример:
источник
Я надеюсь, что приведенный ниже пример обеспечит большую ясность.
источник
Да, Go принимает первоклассные функции.
Смотрите статью «Функции первого класса в Go» для полезных ссылок.
источник