2017-08-07 4 views
2

Wie würde ich ein Array von Arrays erstellen, das auf diese Weise fortfahren kann, Arrays innerhalb von Arrays usw. hinzufügen, ohne explizit zu wissen, wie viele Arrays Arrays enthalten können?Array unendlich erweitern

Obendrein ist es aus Neugierde möglich, den Typ mit Arrays zu ändern, zum Beispiel, wenn ich ein Array mit ["test"] erzeuge, kann ich es später zu [["test"]] ändern und so weiter?

Irgendwelche umfassenden Tutorials, wie Arrays verschachtelt werden können, wären toll, aber derzeit ist es immer noch sehr schwierig, nach Kristallthemen zu suchen.

Antwort

3

Sie können für diese rekursive Aliase verwenden (Sprachreferenz für alias e):

alias NestedArray = Array(NestedArray) | <YourArrayItemType(s)> 

Ein Beispiel (carc.in):

alias NestedArray = Array(NestedArray) | Int32 

array = [] of NestedArray 
array << 1 
array << [2, 3, 4, [5, [6, 7, [8] of NestedArray] of NestedArray] of NestedArray] of NestedArray 
array << Array(NestedArray){Array(NestedArray){10, 11}} 
array # => [1, [2, 3, 4, [5, [6, 7, [8]]]], [[10, 11]]] 

In Bezug auf die zweite Frage, ich bin nicht sicher, was Sie bedeuten. Sie können den Typ einer Variablen wie folgt ändern:

array = ["test"] 
array = [array] 
array # => [["test"]]