【问题标题】:Infinitely expanding array无限扩展数组
【发布时间】:2017-08-07 14:18:42
【问题描述】:

在不明确知道有多少个数组可以包含数组的情况下,我将如何创建一个可以继续下去的数组数组,在数组中添加数组等?

除此之外,出于好奇,是否可以使用数组更改类型,例如,如果我使用 ["test"] 创建一个数组,我可以随后将其更改为 [["test"]] 和很快?

任何关于如何嵌套数组等的综合教程都会很棒,但目前搜索水晶主题仍然非常困难。

【问题讨论】:

    标签: arrays multidimensional-array crystal-lang


    【解决方案1】:

    您可以为此使用递归别名(请参阅alias 的语言参考):

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

    一个例子(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]]]
    

    关于第二个问题,我不确定你的意思。您可以像这样更改变量的类型:

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

    【讨论】:

      猜你喜欢
      • 2015-11-10
      • 1970-01-01
      • 2012-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 2019-08-19
      相关资源
      最近更新 更多