C では、 using ディレクティブを使用すると、名前空間名を接頭辞として付けることなく、名前空間から特定の要素をインポートできます。 。たとえば、 std::cout を使用すると、 std::cout の代わりに cout を直接使用できます。
質問: C で some_namespace::object を使用するのと同等のものはありますか? Go?
答え:
Go は、 C の using ディレクティブとまったく同等のものを提供しません。ただし、同様の効果を達成できるアプローチがいくつかあります。
1.名前空間全体のインポート:
を使用して名前空間全体をインポートできます。構文:
<code class="go">import . "common"</code>
これにより、共通名前空間からすべての識別子がインポートされ、名前空間プレフィックスなしで識別子を使用できるようになります。ただし、名前空間から特定の要素をいくつかだけ必要とする場合には、このアプローチは望ましくない可能性があります。
2.エイリアスの使用:
type キーワードを使用して特定の識別子のエイリアスを作成できます:
<code class="go">import "fmt" type Sprintf = fmt.Sprintf</code>
これにより、fmt.Sprintf の代わりに Sprintf を直接使用できるようになります。ただし、この方法では、使用する識別子ごとにエイリアスを明示的に定義する必要があります。
3.事前定義された識別子の使用:
一般的に使用されるいくつかの識別子について、Go は、対応するパッケージをインポートせずに使用できる事前定義された識別子を提供します。たとえば、len は、「builtin」パッケージ内の len 関数の事前定義された識別子です。
例:
次の Go コードは、上で説明したさまざまなアプローチを示しています。
<code class="go">import ( "fmt" ) type Sprintf = fmt.Sprintf func main() { fmt.Println(fmt.Sprintf("Hello, world!")) fmt.Println(Sprintf("Hello, world!")) }</code>
この例では、事前定義された fmt 識別子と Sprintf エイリアスを使用して、fmt.Sprintf 関数呼び出しを置き換えます。
以上がC の `using some_namespace::object` ディレクティブに相当する Go はありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。