안녕,
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"를 정의하고 초기에 가짜 값을 할당하여 전역이 되도록 합니다. 그런 다음 나중에 평가를 실행할 때 로컬 "lf"가 아니라 평가가 업데이트하는 전역 "lf"를 정의합니다.
여전히 이것에 갇혀 있으면 정말 도움이 될 것입니다. 필요한 경우 전체 코드를 제공하겠습니다. 감사합니다.