ホームページ > バックエンド開発 > PHPチュートリアル > いくつかの一般的な言語の名前空間の特徴

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

WBOY
リリース: 2016-07-29 08:56:39
オリジナル
975 人が閲覧しました

名前空間は、クラスを論理的に編成し、名前の競合を防ぐ方法を提供します。

いくつかの共通言語

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 は、公式ライブラリおよびフレームワーク用にプレフィックスとして 2 文字を含むクラス名を用意することを公式に推奨しています。サードパーティ開発者に対しては、クラス名にプレフィックスとして 3 文字以上を使用することが公式に推奨されています。

PHP

<code><span>namespace</span> Vendor\Package\<span>...</span>..</code>
ログイン後にコピー

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

上記では、内容の側面も含め、いくつかの一般的な言語の名前空間の機能を紹介しました。PHP チュートリアルに興味のある友人にとって役立つことを願っています。

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