你好,
我有一個名為 lf 的變量(lf = ListF << Get Items,其中 ListF 是項目列表)。 我在包含按鈕框的函數中定義了 ListF。 在該按鈕框的函數(在定義 ListF 的函數之後定義)中,我設置 lf = ListF << GetItems。我可以在函數內部訪問 lf 變量,但在函數之後,當我編寫 print(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”,而是定義全局“lf”,然後 eval 更新。
仍然堅持這一點,非常感謝任何幫助。 如果需要的話會提供完整的代碼,謝謝。