사용 : 나는인터페이스에 장치를 추가하는 것은 오히려 구현보다 절을 사용 절
Unit AConsts;
Interface
Const
Const1 : WideString = 'Const1';
Const2 : WideString = 'Const2';
Const3 : WideString = 'Const3';
Const4 = 100;
Const5 = 100;
Implementation
end.
같은 상수로 가득 단위를 ...하고 난에서 본 기기를 사용하려면 다른 장치 사이 ...
Unit AUnit;
Interface
Uses
AConsts;
Implementation
end.
및
Unit AUnit;
Interface
Implementation
Uses
AConsts;
end.
차이가 있습니까? 다른 말로하면, 컴파일 된 앱이 문제가되는 한이 둘 사이에 차이가 있습니까?
[편집 1] 지금까지 답변
감사합니다.
나는이 질문을 충분히 명확하게하지 않았고, 나는 사과했다. 문제는 범위에 관한 것이 아니라 순환 참조를 피하는 것입니다. 컴파일 된 앱의 차이점입니다. 다른 예가 도움이 될 수 있습니다.
UnitA, UnitB 및 UnitC가 모두 AConsts를 사용하는 경우이 UnitA, UnitB 및 UnitC가 모두있는 App1간에 컴파일 된 앱에 차이가 있습니까 (AConsts 단위 및 다른 코드의 상수간에 이름 충돌이 없다고 가정). 인터페이스 섹션의 uses 절과 App2에서 작동합니다. 여기서 UnitA, UnitB 및 UnitC는 모두 Implementation 섹션의 uses 절에 AConst를가집니다.
어쩌면 나는 조금 oldschool이지만 인터페이스에서는 인터페이스 밖에서 사용할 수있는 선언에 필요한 단위 만 사용해야한다고 생각합니다. 나머지는 구현에 넣어야합니다. AFAIK는 고대 시간에 컴파일러의 속도와 결과로 나오는 EXE 크기를 도왔습니다. 그러나, 그것은 여전히 깔끔한 방법입니다. –