【发布时间】: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
假设我有以下array:
(def my-array @[1 2 3 4])
我试过了:
(array/copy my-array my-array-copy)
但我得到一个错误:
compile error: unknown symbol array/copy
【问题讨论】:
标签: janet
你可以做一个浅拷贝:
(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 中,那么
使用while 或each 循环将元素复制到新的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])
【讨论】: