0

.lua スクリプト ファイルがあり、次のような問題が発生しています。

myTable = {}

function changeMyTable(index,value){
    myTable[index] = value
    --When I output the size of #myTable now I receive 1 as result...
}

function checkMyTableSize(){
    --when i output #myTable here. I receive 0 as result
}

グローバル 'myTable' テーブルにインデックスを作成する方法を知っている人はいますか?

table.insert(myTable,index,value) も使用しようとしました。

4

1 に答える 1

1

-- #myTable のサイズを出力すると、結果として 1 が返されます...

これは、値が正確に 1 の場合にのみ発生します。それ以外の場合は発生しません。index# 演算子は、配列値であるテーブル内の値の数のみをカウントし、最初の NIL までカウントします。したがって、テーブル[1]、次にテーブル[2]、そして... NILに達するまでチェックします。そして、それを返します。

これは、その背後にある概念の説明であることに注意してください。実装はおそらくそのようにループしません。

いずれにせよ、グローバル関数を複数回呼び出すのではなく、スクリプトを複数回実行することが矛盾の原因である可能性があります。

于 2011-07-05T00:55:32.763 に答える