2017-01-30 5 views
6

जूलिया का उपयोग करके, मैं विश्वसनीय रूप से किसी भी प्रकार को String में परिवर्तित करना चाहता हूं। V0.5 में रूपांतरण करने के दो तरीके हैं, या तो string फ़ंक्शन या String कन्स्ट्रक्टर। समस्या यह है कि आपको इनपुट प्रकार के आधार पर सही चुनने की आवश्यकता है।जूलिया में किसी भी प्रकार में स्ट्रिंग को कैसे परिवर्तित करें

उदाहरण के लिए, typeof(string(1))String का मूल्यांकन करता है, लेकिन String(1) एक त्रुटि फेंकता है। दूसरी तरफ, typeof(string(SubString{String}("a")))Substring{String} का मूल्यांकन करता है, जो String का उप प्रकार नहीं है। हमें इसके बजाय String(SubString{String}("a")) करने की आवश्यकता है।

String(string(x)) 

जो थोड़ा बोझिल लगता है:

तो यह केवल विश्वसनीय तरीका टाइप करने के लिए String निर्माण के माध्यम से है किसी भी इनपुट x कन्वर्ट करने के लिए लगता है।

क्या मुझे यहां कुछ याद आ रही है?

+2

क्यों आप अन्य सभी 'AbstractString's के बहिष्कार पर एक' स्ट्रिंग' आवश्यकता क्यों है? आदर्श रूप से आपको सटीक स्ट्रिंग प्रकार की परवाह करने की आवश्यकता नहीं है। –

+0

@MattB। अब कोई अच्छा कारण नहीं है कि आपने इंगित किया है कि मुझे अपनी टाइप परिभाषाओं में 'सारस्ट्रिंग' का उपयोग करना चाहिए ... :-) पूर्णता के लिए, क्या इसका मतलब यह है कि 'स्ट्रिंग (स्ट्रिंग (x)) 'है 'स्ट्रिंग' प्रकार प्राप्त करने का सबसे विश्वसनीय तरीका? –

उत्तर

3

आपको शायद ही कभी String में स्पष्ट रूप से परिवर्तित करने की आवश्यकता होनी चाहिए। ध्यान दें कि भले ही आपकी टाइप परिभाषाओं में String फ़ील्ड हों, या यदि आपके सरणी में ठोस तत्व प्रकार String है, तो भी आप निहित रूपांतरण पर भरोसा कर सकते हैं।

उदाहरण के लिए, यहाँ निहित रूपांतरण के उदाहरण हैं:

type TestType 
    field::String 
end 

obj = TestType(split("x y")[1]) # construct TestType with a SubString 
obj.field # the String "x" 

obj.field = SubString("Hello", 1, 3) # assign a SubString 
obj.field # the String "Hel" 
संबंधित मुद्दे