कॉपी किए बिना मैं एक सामान्य फ़ंक्शन लिखना चाहता हूं जो कॉलर की सुविधा के लिए किसी भी प्रकार की स्ट्रिंग (&str
/String
) स्वीकार करता है।कॉलर की सुविधा के लिए जेनेरिक फ़ंक्शन स्वीकार्य और स्ट्र या हिलिंग स्ट्रिंग
समारोह आंतरिक रूप से एक String
की जरूरत है, तो मैं भी अगर फोन करने वाले String
साथ फ़ंक्शन को कॉल अनावश्यक फिर से आवंटन से बचने के लिए चाहते हैं।
foo("borrowed");
foo(format!("owned"));
अन्य तरीके के बारे में संदर्भ मैं जानता हूँ कि मैं foo<S: AsRef<str>>(s: S)
उपयोग कर सकते हैं, लेकिन क्या स्वीकार करने के लिए?
मुझे लगता है कि सामान्य ToOwned
के आधार पर काम कर सकते हैं तर्क (&str
लिए काम करता है, और मैं इसे String
पर नो-सेशन है संभालने हूँ), लेकिन मैं सटीक सिंटैक्स को समझ नहीं सकता।