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

Как передать переменные аргументы в fmt.Sprintf в пользовательской реализации error.New?

Опубликовано 9 ноября 2024 г.
Просматривать:874

How to Pass Variable Arguments to `fmt.Sprintf` in a Custom `errors.New` Implementation?

Как реализовать версию ошибок.Новая версия, которая принимает те же параметры, что и fmt.Sprintf

Чтобы реализовать версию ошибок.Новая версия, которая принимает те же параметры, что и fmt.Sprintf

func NewError(format string, a ...interface{}) error {
    return errors.New(fmt.Sprintf(format, a))
}

func NewError(строка формата, ...интерфейс{}) ошибка { возвращать ошибки.New(fmt.Sprintf(format, a)) }

Однако эта функция работает неправильно, поскольку переменное количество аргументов в a становится одним параметром массива в NewError, в результате чего Sprintf заполняет только один параметр в строке формата.

func NewError(format string, a ...interface{}) error {
    return errors.New(fmt.Sprintf(format, a...))
}

func NewError(строка формата, a ...interface{}) ошибка { возвращать ошибки.New(fmt.Sprintf(format, a...)) }

Это позволяет fmt.Sprintf интерпретировать a как переменное количество аргументов.How to Pass Variable Arguments to `fmt.Sprintf` in a Custom `errors.New` Implementation?

Последний учебник Более>

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

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

Copyright© 2022 湘ICP备2022001581号-3