2015-01-07 19 views
7

जूलिया में एक स्ट्रिंग और पूर्णांक मान को संयोजित करने का सबसे आसान तरीका क्या है? मैं कुछ ऐसा करना चाहते हैं:जूलिया: समेकित स्ट्रिंग और पूर्णांक

julia> foo = "test: " 
"test: " 

julia> bar = 3 
3 

julia> foobar = foo * bar 
ERROR: `*` has no method matching *(::ASCIIString, ::Int64) 

उत्तर

19

मैं जूलिया के साथ बहुत परिचित नहीं हूँ, लेकिन मेरा मानना ​​है कि आप स्ट्रिंग प्रक्षेप के साथ बेहतर होगा:

"test: $bar" 

या बारी-बारी से:

string("test: ", bar) 

या, आप * ऑपरेटर का उपयोग करना चाहते किया हो, तो मेरा मानना ​​है कि आप चाहते हैं चाहते हैं:

"test: " * string(bar) 
+0

धन्यवाद, अंतिम विकल्प लगता है मेरे लिए सबसे अधिक उपयोगी एक –

+0

मुझे लगता है कि होना करने के लिए एक स्ट्रिंग के साथ प्रदर्शन के लिए सबसे अच्छा होना चाहिए। –

+1

@ डेविडपंडर्स 'स्ट्रिंग' और स्ट्रिंग इंटरपोलेशन बराबर हैं। –

7

आप एक नया विधि के साथ * सामान्य समारोह का विस्तार कर सकते, Union{String, Number} प्रकार करने के लिए कई प्रेषण का उपयोग कर:

julia> VERSION 
v"0.6.0-rc1.0" 

julia> * 
* (generic function with 181 methods) 

julia> const StrNum = Union{String, Number} 
Union{Number, String} 

julia> import Base: * 

julia> Base.:*(x::StrNum, y::StrNum) = string(x, y) 

julia> 4 * "2" 
"42" 

julia> "4" * 2 
"42" 
+0

मैं जूलिया के लिए नया हूँ। क्या आप समझाएंगे कि क्यों/क्यों 'println (foo, bar)' 'एक बुरा विचार है? या ओपी के लक्ष्य को प्राप्त नहीं करता है। धन्यवाद। – PatrickT

+1

@ पैट्रिकट 'println' stirng प्रिंट करेगा और' कुछ भी नहीं 'वापस करेगा,' स्ट्रिंग 'स्ट्रिंग वापस करेगा, लेकिन इसे मुद्रित नहीं करेगा, हालांकि आरईपीएल हमेशा अंतिम मूल्य प्रदर्शित करता है! स्ट्रिंग को लौटने से इसे प्रिंट करने से अधिक उपयोगी होता है, विशेष रूप से यदि आप इसे चालू रखना चाहते हैं। यह सिर्फ एक उदाहरण है कि ओपी अपने स्वयं के '*' मेहटोड को कैसे परिभाषित कर सकता था या बस इसके बजाय 'स्ट्रिंग' का उपयोग कर सकता था। – SalchiPapa

+0

इसे धन्यवाद मिला! :-) – PatrickT

संबंधित मुद्दे