네임스페이스는 클래스를 논리적으로 구성하고 이름 충돌을 방지하는 방법을 제공합니다.
여러 공용 언어
C
네임스페이스는 중첩 가능
중첩된 네임스페이스는 다른 네임스페이스 네임스페이스에 정의된 이름을 참조합니다. 중첩된 네임스페이스는 중첩된 범위입니다. 내부 네임스페이스에 선언된 이름은 외부 네임스페이스에 선언된 동일한 이름의 멤버를 숨깁니다.
<code><span>int</span> x = <span>20</span>; <span>namespace</span> outer { <span>int</span> x = <span>10</span>; <span>namespace</span> inner { <span>int</span> z = x; } } <span>int</span> main() { std::cout << outer::inner::z; <span>// 输出10 </span><span>return</span><span>0</span>; } </code>
C#
중첩 네임스페이스
네임스페이스는 네임스페이스 선언에 선언되어 있으며, 각 네임스페이스는 "."으로 구분됩니다.
예:
<code>namespace N1.N2 { class A {} class B {} } 在语义上等效于 namespace N1 { namespace N2 { class A {} class B {} } } </code>
Java
<code><span>package</span> cn.org.web3d.x3dpad</code>
Java의 네임스페이스는 독립적인 최상위 수준이 있는 한 도메인 이름을 사용하면 프로젝트의 절대적인 고유성을 보장할 수 있습니다.
Objective-C
Objective-C 애플리케이션의 모든 클래스 이름은 전역적으로 고유해야 합니다. 이름 지정은 우아한 언어에 비해 항상 Objective-C의 약점이었습니다. Apple에서는 공식 라이브러리 및 프레임워크에 두 글자의 접두사를 사용하는 클래스 이름을 공식적으로 권장합니다. 타사 개발자의 경우 클래스 이름을 지정할 때 접두사로 3자 이상을 사용하는 것이 공식 권장 사항입니다.
PHP
<code><span>namespace</span> Vendor\Package\<span>...</span>..</code>
1차 Vendor는 고유 식별자여야 함을 강조합니다. 즉, 최상위 도메인 이름이 {Vendor여야 함을 의미합니다. }.com. 그래야만 프로젝트의 절대적인 고유성을 보장할 수 있습니다. 예를 들어 이런 생각이 들었을 때 나는 즉시 자신을 보호하기 위해meanir.com이라는 도메인 이름을 등록했습니다.
이상에서는 관련 내용을 포함하여 여러 공통 언어의 네임스페이스 기능을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.