मैं जुलिआ में पैरामीट्रिक प्रकार के निर्माण को समझने के लिए संघर्ष कर रहा हूं। मुझे पता है कि मैं निम्नलिखित के साथ एक प्रकार बना सकते हैं:पैरामीट्रिक प्रकार निर्माण
type EconData
values
dates::Array{Date}
colnames::Array{ASCIIString}
function EconData(values, dates, colnames)
if size(values, 1) != size(dates, 1)
error("Date/data dimension mismatch.")
end
if size(values, 2) != size(colnames, 2)
error("Name/data dimension mismatch.")
end
new(values, dates, colnames)
end
end
ed1 = EconData([1;2;3], [Date(2014,1), Date(2014,2), Date(2014,3)], ["series"])
हालांकि, मैं समझ नहीं values
कैसे टाइप किया जा जाएगा निर्दिष्ट करने का तरीका।
ERROR: `EconData{T}` has no method matching EconData{T}(::Array{Int64,1}, ::Array{Date,1}, ::Array{ASCIIString,2})
मैं values
का प्रकार निर्दिष्ट कैसे कर सकते हैं: यह
type EconData{T}
values::Array{T}
...
function EconData(values::Array{T}, dates, colnames)
...
बहरहाल, यह (और इसी तरह के प्रयास) की तरह कुछ करने के लिए बस का उत्पादन और त्रुटि मेरे लिए उचित लगता है?
यह प्रकार एक जैसा दिखता है जो मैंने लगभग खुद को समाप्त कर लिया है (और यह ओपन-सोर्स और एमआईटी लाइसेंस है)। तो शायद मैं आपको कुछ काम बचा सकता हूं। विशेष रूप से, क्या आपकी तिथियां हमेशा आरोही क्रम में क्रमबद्ध की जाएंगी? यदि ऐसा है, तो आप अपने प्रकार का उपयोग करने वाले सभी तरीकों से उस तरह का लाभ उठा सकते हैं। यह मेरे द्वारा निर्मित प्रकार का आधार है। दुर्भाग्य से मैं इसे अभी तक दस्तावेज करने के लिए नहीं मिला है, लेकिन स्रोत [github] पर है (https://github.com/colintbowers/SortedStructures.jl)। डेटा वेक्टर या मैट्रिक्स है या नहीं और क्या तारीख अद्वितीय हैं, इस पर निर्भर करते हुए चार विकल्प हैं। –
यह भी ध्यान दें कि 'ऐरे {टी}' एक ठोस प्रकार नहीं है, क्योंकि 'ऐरे' भी एक आयाम पैरामीटर लेता है। Http://docs.julialang.org/en/release-0.3/manual/faq/#how-do-abstract-or-ambiguous-fields-in-types-interact-with-the-compiler यह महत्वपूर्ण क्यों है देखें। – tholy