निम्नलिखित काम करता है:जूलिया: पैरामीट्रिक प्रकारों के बाहरी कन्स्ट्रक्टर क्यों होना चाहिए?
type TypeA
x :: Array
y :: Int
TypeA(x :: Array) = new(x, 2)
end
julia> y = TypeA([1,2,3])
TypeA([1,2,3],2)
यह नहीं करता है:
type TypeB{S}
x :: Array{S}
y :: Int
TypeB{S}(x:: Array{S}) = new(x,2)
end
julia> y = TypeB([1,2,3])
ERROR: `TypeB{S}` has no method matching TypeB{S}(::Array{Int64,1})
काम करने के लिए दूसरे मामले पाने के लिए, एक प्रकार घोषणा के बाहर निर्माता घोषित करने के लिए है। यह थोड़ा अवांछनीय है। मेरा सवाल यह है कि यह समस्या जूलिया-डिजाइन दृष्टिकोण से क्यों मौजूद है, इसलिए मैं जूलिया टाइप-सिस्टम के बारे में बेहतर कारण बता सकता हूं।
धन्यवाद।