«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Зачем бросить ошибку «не может использовать функцию как тип аргумента», и как я могу ее исправить?

Зачем бросить ошибку «не может использовать функцию как тип аргумента», и как я могу ее исправить?

Опубликовано в 2025-03-22
Просматривать:642

Why Does Go Throw a

не может использовать функцию как тип в аргументе: Устранение неполадок

Эта ошибка возникает при попытке передать функцию в качестве аргумента другой функции, но сигнатура функции не соответствует ожидаемому типу. В частности, в случае программирования GO, эта проблема возникает, когда вы пытаетесь пройти функцию, которая принимает конкретный структурированный параметр и возвращает интерфейс и ошибку в качестве требования для другой функции.

понимание проблемы

сообщение ошибки «не может использовать функцию (тип Func () в типе в аргументе» означает, что функция, которую вы не используете. В этом случае аргумент ожидает реализации интерфейса MessageHandler, который имеет определенную подпись функции.

исправление проблемы

, чтобы разрешить эту ошибку, вы должны убедиться, что ваша функция придерживается ожидаемой подписи). (интерфейс {}, ошибка)

type MessageHandler func(MessageDelivery) (interface{}, error)

принять один аргумент типа MessagedEliele. должна быть ошибкой.
  • пример:
    • изменить свои функции, чтобы выровнять с необходимой подписью:
    • func upper -hipparhashhradhr (md messagedelivery) ({}, ошибка) S.Reply (MessageTest {Strings.toupper (Md.message. (String))}, Md.delivery) вернуть ноль, ноль } Func repeathandler (MD MessagedElieleivey) (интерфейс {}, ошибка) { S.Reply (MessageTest {Strings.Repeat (Md.message. (String), 5)}, Md.delivery) вернуть ноль, ноль }
  • Теперь эти функции совместимы с интерфейсом MessageHandler и могут передаваться в качестве аргументов с методом ConsumerFunc ().
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3