अक्सर लिखने में आवेदन करें, मैं []byte
या string
का उपयोग करने के विकल्प के साथ खुद को ढूंढता हूं। []byte
की स्पष्ट परिवर्तनशीलता के अलावा, मैं कैसे तय करूं कि किस का उपयोग करना है?गो में [] बाइट या स्ट्रिंग का उपयोग कब करें?
मैं उदाहरण के लिए कई उपयोग के मामलों है:
- एक समारोह के लिए एक नया
[]byte
देता है। चूंकि स्लाइस क्षमता तय की गई है, इसलिए स्ट्रिंग वापस नहीं करने के लिए क्या कारण है? []byte
डिफ़ॉल्ट रूप सेstring
के रूप में अच्छी तरह से मुद्रित नहीं होते हैं, इसलिए मैं अक्सर लॉगिंग उद्देश्यों के लिएstring
पर कास्टिंग करता हूं। क्या यह हमेशाstring
होना चाहिए?[]byte
को तैयार करते समय, एक नई अंतर्निहित सरणी हमेशा बनाई जाती है। यदि प्रीपेड करने के लिए डेटा स्थिर है, तो यहstring
क्यों नहीं होना चाहिए?
ऐसा लगता है जैसे यह आपके उपयोग पर निर्भर करता है। यदि आप उनके साथ स्ट्रिंग-वाई ऑप्स करने की योजना बना रहे हैं, तो उसे 'स्ट्रिंग' कहते हैं। यदि यह सिर्फ अपारदर्शी डेटा को चारों ओर घुमाया जा रहा है, तो क्यों नहीं [[] बाइट'? यह उपयोग के मामलों में आता है। – Ashe
और यदि आपको यूटीएफ -8 एन्कोडेड बाइट्स की धारा के बजाय अलग-अलग वर्णों को संसाधित करने की आवश्यकता है, तो इसे पहले रन (32 बिट इन्ट्स आईआईआरसी) में परिवर्तित करें। –
तब भी '[] rune' है, जो वर्णों की एक परिवर्तनीय स्ट्रिंग का प्रतिनिधित्व करने के लिए सबसे अच्छा है – newacct