言語パックのデフラグは行きます

パッケージの内容をエクスポートする方法、言語の開発プロジェクトのエンジニアリングでは、ゴー言語のソースコードの再利用がパッケージ(パッケージ)に基づいて構築され、この論文が行く言語パックを定義する方法について説明して行くとどのように他のパッケージをインポートします。

パッケージの紹介

パッケージ(パッケージ)ゴーのソースコードのコレクションよりは、高度なコード再利用されるプログラムで、言語に行くには、そのようなので、上のFMT、OS、IOとなどビルトインのパッケージ、多くのを提供してくれます。

カスタムパッケージ

我々はまた、彼らのニーズに応じて、パッケージは単にファイル.GO保存されたファイルとして理解することができ、独自のパッケージを作成することができます。ドキュメント以下のフォルダには、すべてのファイルの所有権パッケージと述べて、コードの最初の行に次のコードを追加して行く必要があります。

package 包名

注意:
1、次のフォルダには、複数のフォルダにすることはできませんだけで一つのパッケージに、同じファイルのパッケージを持つことができます。
シンボル- 2は、パッケージ名とフォルダの名前を含めることはできません、パッケージ名と同じではないかもしれない
ソースコードがコンパイル時のメインパッケージに含まれていない場合、実行可能ファイルを取得することはできません、アプリケーションのメインエントランスと呼ばれる3、パッケージパッケージパッケージ。

可視

あなたが別のパッケージ識別子(例えば、変数、定数、型、関数など)でパケットを参照する場合、識別子は、(パブリック)の外からも見えなければなりません。ただ外部の目に見える識別子を作ることができる識別子を行くために、言語の最初の文字を大文字にします。
たとえば、次のように我々は、PKG2パッケージと呼ばれるパッケージを定義します。

var a = 100

const Mode = 1

type person struct {
    name string
}

func Add(x, y int) int {
    return x + y
}
func age() {
    var Age = 18
    fmt.Println(Age)
}

構造体のフィールド名とメソッド名の最初の文字が大文字にされている場合、外部のパッケージは、フィールドやメソッドにアクセスすることができますインターフェイス、例えば:

type Student struct {
    Name string
    class string
}
type Payer interface{
    init()
    Pay()
}

パッケージの紹介

あなたのコード内の他のパッケージの内容を参照するには、パッケージの使用にインポートキーワードを使用する必要があります。次のように具体的な構文は次のとおりです。

import "包的路径"

注意事項:

  • 通常、以下のファイルのパッケージ宣言文の先頭にインポートimport文。
  • パッケージ名を導入すること包まれた二重引用符を使用します。
  • パッケージは$ GOPATHから/ srcに/後に使用してカウントされている/ルートを分割します。
  • 循環インポートパッケージを禁止する言語を移動します。

カスタムパッケージ名

パッケージ名、パッケージ名をインポートするとき、我々はまた、設定エイリアスをインポートすることができます。次の形式:

import 别名  "包的路径"

複数行のインポートは、エイリアスを定義します。

import (
    "fmt"
    m "github.com/Q1mi/studygo/pkg_test"
)
func main(){
    fmt.Println(m.Add(100,200))
    fmt.Println(m.Mode)
}

匿名のインポート・パッケージ

あなただけのパッケージをインポートする場合は、内部のデータパケットを使用せずに、パケットは、匿名のインポートに使用することができます。次のように具体的な形式は次のとおりです。

import _  "包的路径"

実行可能ファイルにコンパイルされるように、匿名では、他の手段とのパッケージにパッケージをインポートしました。

INIT()関数の初期化

init()関数は、説明します

init()関数は、パラメータはありませんし、値を返さない:インポートパッケージ・ステートメントを実行するための囲碁言語プログラムが自動的に初期化内部機能のパッケージへの呼び出しをトリガーする場合は()、あることに留意されたいです。実行時には、init()関数が自動的に実行、それはコードを呼び出すためのイニシアチブを取ることができない呼び出されます。
以下に示すように、パケットの初期化シーケンスが行われます。

言語パックのデフラグは行きます

init()関数の実行順序

言語パックは、続いて、注文に応じて参照配列をコンパイルすることを決定し、それによって、移動コンパイラパッケージを構築すると、ツリー状の関係を参照し、インポートすることができ、各パッケージのメインパックのインポートと他のパッケージからすべてのパッケージをチェックを開始します行きますこれらのパッケージには、コードをコンパイル。
実行時に、最終的なパッケージは、最初に導入されるとinit示すように、初期化()関数を呼び出します。
言語パックのデフラグは行きます

おすすめ

転載: blog.51cto.com/13766835/2416868