いくつかの一般的な言語の名前空間の特徴

WBOY
リリース: 2016-06-13 12:29:04
オリジナル
1213 人が閲覧しました

いくつかの共通言語の名前空間 (Namespace) 機能は、名前の競合を防ぐためにクラスを論理的に編成する方法を提供します。

いくつかの共通言語

C

名前空間は入れ子にすることができます

入れ子になった名前空間は、他の名前空間名前空間で定義された名前を参照します。ネストされた名前空間は、ネストされたスコープです。内側の名前空間で宣言された名前は、外側の名前空間で宣言された同じ名前のメンバーを非表示にします。 namespaces

名前空間は名前空間宣言で宣言され、各名前空間は「.」で区切られます。

例:
<code class="sourceCode cpp"><span class="dt">int</span> x = <span class="dv">20</span>; <span class="kw">namespace</span> outer {   <span class="dt">int</span> x = <span class="dv">10</span>;   <span class="kw">namespace</span> inner {     <span class="dt">int</span> z = x;   } }   <span class="dt">int</span> main() {   std::cout << outer::inner::z; <span class="co">// 输出10 </span>  <span class="kw">return</span> <span class="dv">0</span>; } </code>
ログイン後にコピー

Java

Java の名前空間は、独立したトップレベルがある限り、ドメイン名を使用すると、プロジェクトの絶対的な一意性を保証できます。

Objective-C
<code>namespace N1.N2{class A {}class B {}}在语义上等效于namespace N1{namespace N2{class A {}class B {}}} </code>
ログイン後にコピー

Objective-C アプリケーションのすべてのクラス名はグローバルに一意である必要があります。これらの洗練された言語と比較すると、Objective-C の弱点は常に命名です。 Apple は、公式ライブラリおよびフレームワーク用にプレフィックスとして 2 文字を含むクラス名を用意することを公式に推奨しています。サードパーティ開発者に対しては、クラス名にプレフィックスとして 3 文字以上を使用することが公式に推奨されています。

PHP
<code class="sourceCode java"><span class="kw">package</span> cn.org.web3d.x3dpad</code>
ログイン後にコピー

これは、第 1 レベルのベンダーが一意の識別子である必要があることを強調しています。つまり、{Vendor というトップレベルのドメイン名が必要です。そうすることでのみ、プロジェクトの絶対的な独自性を確保できます。たとえば、これを考えたとき、私は自分を守るためにすぐにmeanir.comというドメイン名を登録しました。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート