stuncloud/UWSCR

多次元配列をresizeした場合は初期値を配列にする

Closed this issue · 1 comments

要望

多次元配列をresizeした場合にEMPTYではなく子の配列を追加するようにすべき
ただしサイズが明確なdim配列宣言時に限る

補足用コード

// 0.15.0
dim arr[0][1]

print length(arr) // 1
resize(arr, 1)
print length(arr) // 2
print type_of(arr[0]) // TYPE_ARRAY
print type_of(arr[1]) // TYPE_EMPTY ※

// ※ この場合動作的には以下と同等になって欲しい
// resize(arr, 1, [EMPTY, EMPTY])

dim宣言した多次元配列など、各次元のサイズが固定であればrisize時に空の配列を追加する

dim arr[0][1] = 1,2

print arr // [[1, 2]]
resize(arr, 1)
print arr // [[1, 2], [, ]]

リテラル表記でサイズが異なる場合などは正しい多次元配列とみなさずEMPTYを初期値とする

arr = [
    [1, 2, 3],
    [1, 2]
]

print arr // [[1, 2, 3], [1, 2]]
resize(arr, 2)
print arr // [[1, 2, 3], [1, 2], ]

初期値を指定した場合はそれが優先される

dim arr[0][1] = 1,2

print arr // [[1, 2]]
resize(arr, 1, 500)
print arr // [[1, 2], 500]