, 단지 내부 의미 한 global
명령 할 때 이 tclone.tcl에서 변수 신호가 10로 설정됩니다 것 package require tcltwo.tcl
proc 본문 :
이 명령은 proc 본문의 컨텍스트에서 실행하지 않는 한 효과가 없습니다.
그래서 전체적인 질문은 명확하지 않습니다. 전역 변수를 설정하는 첫 번째 파일에 proc가 있고 두 번째 파일에 다른 proc (두 번째 파일에 있음)을 설정했다면 의미가 맞는 것이고 대답은 예입니다. 두 번째 파일의 코드에 변경 사항이 표시됩니다. 제공되는 첫 번째 파일의 코드에 따라 "설정"절차가 "가져 오기"전에 실행됩니다. 가능한 한 더 명확하게하기 위해 전역 변수는 인터프리터와 관련하여 변수가 실행되는 코드를 전역 적으로 표현합니다. 따라서 어느 방법으로 코드를 인터프리터 (package require
대 source
대 eval
등)로 가져 오더라도 모든 코드는 동일한 전역 집합을 볼 수 있습니다.
그러나 어쨌든 전역 변수를 사용하지 말고 네임 스페이스 변수를 사용하지 않아야합니다. 즉, 전역 변수이지만 이후에 다른 코드를 추가 할 위험이 줄어들어 실수로 해당 전역 변수가 엉망이되어 버릴 수 있습니다. 물론, 일반적으로 이것은 애플리케이션이 얼마나 복잡 할 것으로 예상되는지에 달려 있습니다.
짧은 대답은 "예"입니다. –