やあ、
lf という変数があります (lf = ListF << Get Items、ListF は項目のリストです)。 ボタン ボックスを含む関数内で ListF を定義します。 ListF が定義されている関数の後に定義されている、そのボタン ボックスの関数で、lf = ListF << GetItems を設定します。関数内では lf 変数にアクセスできますが、関数の後に print(lf); と記述すると、 lf 変数にアクセスできます。この名前の未解決エラーが表示されます。 その理由について教えていただけますか?
ListF が定義されている関数:
selectFileButton = Function({y},
win1 = New Window( "Select Files",
Lineup Box( N Col( 2 ), Spacing( 3 ),
Button Box( "File To Tag", ListF << Append( ListData << GetSelected )),
ListF = List Box( fileSelected, width( lbWidth ), nLines( 5 ), Numeric ), <BR />Button Box("OK", OKScript1)))); <BR />lf が定義されている関数:
OKScript1 = Expr(
//win1 << CloseWindow;
lf = ListF << Get Items);
これら両方の関数の外側では、次のようになります。
print(lf);
変数のスコープが問題である可能性があります。 「lf」は、コードの eval チャンク内で作成され、値 (ローカル変数) が割り当てられているようです。 コードのチャンクが完了すると、ガベージ コレクションによってローカル変数が削除されます。
「lf」を定義し、初期に偽の値を割り当てて、グローバルになるようにします。 その後、後で eval を実行すると、ローカルの "lf" ではなく、eval が更新するグローバル "lf" が定義されます。
まだこの問題で行き詰まっています。助けていただければ幸いです。 必要に応じて完全なコードを提供します、ありがとう。