لتنفيذ نسخة من الأخطاء. جديد يقبل نفس المعلمات مثل fmt.Sprintf، يمكن للمرء استخدام وظيفة NewError، والتي تم تعريفها على النحو التالي:
func NewError(format string, a ...interface{}) error { return errors.New(fmt.Sprintf(format, a)) }
ومع ذلك، هذه الوظيفة لا تعمل بشكل صحيح لأن العدد المتغير للوسائط في a يصبح معلمة صفيف واحدة في NewError، مما يتسبب في قيام Sprintf بملء معلمة واحدة فقط في سلسلة التنسيق.
لإصلاح هذه المشكلة، يجب وضع علامة على المعلمة النهائية في NewError كعدد متغير من الوسائط باستخدام ... بناء الجملة:
func NewError(format string, a ...interface{}) error { return errors.New(fmt.Sprintf(format, a...)) }
يسمح هذا لـ fmt.Sprintf بتفسير عدد متغير من الوسائط.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3