2016-01-05 4 views
5

पर्ल 6 में इन्ट्स के एक ऐरे-रेफरेंस के कस्टम प्रकार को कैसे परिभाषित किया जाए? मैं इस कोशिश की, लेकिन यह काम नहीं करता:पर्ल 6 में इन्ट्स के एक Arrayreference के एक कस्टम प्रकार को परिभाषित करने के लिए कैसे?

subset Array_of_Int of Array where *.all ~~ Int; 

my $n = My::Class.new(option => < 22 3 4 5 >); 

# Type check failed in assignment to $!option; expected My::Class::Array_of_Int but got List in block <unit> at ... 

उत्तर

2

मैं यह करने के क्यों यकीन नहीं है, सरणी तत्व के लिए घोषित सबसेट के साथ नहीं बल्कि सरणी खुद के लिए सबसे perl6 प्रोग्रामर। राकुडो Array के बजाय List बनाने का निर्णय लेता है ->Num के बजाय Rat प्रकार का उपयोग करते समय एक ही जाल आता है। वैसे भी यह संभव है। सब्सक्रिप्शन पूरी तरह योग्य नहीं है (उदाहरण के लिए यह संभव नहीं है)। आपको एक सरणी स्पष्ट रूप से $aoi = Array[Int].new(1,2,3,4,5,6) बनाना है।

> subset AoI of Array of Int 
> my AoI $aoi; 
> $aoi = Array[Int].new  
> $aoi.append(1,2,3,4) 
    [1 2 3 4] 
> $aoi.append("mystr") 
Type check failed in assignment to ; expected Int but got Str 
in block <unit> at <unknown file> line 1 
+0

मैं की जरूरत है केवल 'इंट @ .option' है, लेकिन मुझे लगता है कि इससे पहले कि पता नहीं था। –

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

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