【问题标题】:Copying an array to another array将一个数组复制到另一个数组
【发布时间】:2022-07-05 23:41:06
【问题描述】:

假设我有以下array:

(def my-array @[1 2 3 4])

我试过了:

(array/copy my-array my-array-copy)

但我得到一个错误:

compile error: unknown symbol array/copy

【问题讨论】:

    标签: janet


    【解决方案1】:

    你可以做一个浅拷贝:

    (def my-array @[1 2 3 4])
    (def my-array-copy my-array)
    

    但是当你将(set())my-array一起使用时,会在my-array-copy中体现出来:

    # 3 -> 69
    (set (my-array 2) 69)
    my-array-copy # Output: @[1 2 69 4])
    

    如果您不希望 my-array 中的任何更改反映在 my-array-copy 中,那么 使用whileeach 循环将元素复制到新的array

    (def my-array @[1 2 3 4])
    (def my-array-copy (array/new (length my-array)))
    
    (var counter 0)
    (while (< counter (length my-array))
        (put my-array-copy counter (get my-array counter))
        (++ counter))
    
    # If you dislike readability and love hunting for missing brackets
    (each number my-array (put my-array-copy counter 
                          (get my-array counter))(++ counter))
    
    (set (my-array 2) 69)
    my-array # Output: @[1 2 69 4])
    my-array-copy # Output: @[1 2 3 4])
    

    【讨论】:

      猜你喜欢
      • 2017-09-13
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      • 1970-01-01
      • 2014-08-24
      • 2013-06-05
      • 2022-11-25
      • 1970-01-01
      相关资源
      最近更新 更多