2

配列の要素 (別の配列) を別の変数に格納する単純なコード:

Global $arr[1][2] = [ [1, 2] ]
Global $sub = $arr[0]

そして、私たちは得る

Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
Global $sub = $arr[0]
Global $sub = ^ ERROR

書くと

Global $arr[1][2] = [ [1, 2] ]
Global $sub[2] = $arr[0]

我々が得る

Missing subscript dimensions in "Dim" statement.:
Global $sub[2] = $arr[0]
Global $sub[2] = ^ ERROR

とても単純な作業ですが、どうすればそれができるかわかりませんでした。全く分かりません。助けてください。

4

1 に答える 1

5

配列内の配列ではなく、2 次元の多次元配列を作成しています。両者の違いは次のとおりです。

  • 多次元配列:

    Local $arr[1][2] = [ [1, 2] ]
    Local $sub = $arr[0][0] ; value = 1
    
  • 配列内の配列:

    Local $firstArray[2] = [1, 2]
    Local $arr[1] = [ $firstArray ]
    ;Local $sub = $arr[0][0] ; This does not work
    
    Local $sub = $arr[0]
    $sub = $sub[0] ; value = 1
    

ほとんどの場合、AutoIt では多次元配列が好まれます。別の配列内の配列は元の配列のコピーを作成するため、パフォーマンスが低下し、コピーを変更しても元の配列には影響しません。

最後に、Global キーワードの代わりに Local キーワードを使用して変数を定義することをお勧めします。Local キーワードを使用して変数を宣言すると、グローバル名前空間の汚染を回避できます。

于 2011-02-13T19:42:37.900 に答える