【Golang基礎】Go言語のプログラム構造

6831 ワード

Go言語のプロジェクト構造
  一般的に、1つのGoプロジェクトはGOPATHの下に、次の3つのディレクトリがあります.
.        
├── bin   //            
├── pkg   //          
└── src   //        

一般的にbinディレクトリとpkgディレクトリは作成せず、goコマンドは自動的に構築され(go installなど)、srcディレクトリを作成するだけでよい.
Goプログラムの一般構造
//        
package main

//      
import "fmt"

//      
const _PI float64 = 3.14

//       
var title string = "Go       "

//       
type newType int

//     
type Student struct{
	
}

//      
type ILearn interface{
	
}

//   main           
func main(){
	fmt.Println("Hello Golang")
}

  • Goプログラムはpackageによって組織され(pythonと類似)、packageは最も基本的な配布単位と工事管理における依存関係の体現である.
  • 各Go言語ソースファイルの先頭には、ソースファイルが属するコードパッケージを示すpakcage宣言が必要です.デフォルトでは、mainpackageパッケージを除き、他のパッケージ名はフォルダ名に対応します.
  • Go言語の実行可能プログラムを生成するには、mainpackageパケットが必要であり、そのパケットの下にmain()関数が必要である.
  • 同じ経路の下には1つのpackageしか存在せず、1つのpackageは複数のソースファイルに分割することができる.
  • は、importキーワードを介して他の非mainパケットをインポートする.
  • は、constキーワードによって定数を定義する.
  • は、関数体の外部でvarキーワードを使用してグローバル変数を定義する.
  • は、typeのキーワードによって構造(struct)またはインタフェース(interface)の宣言を行う.
  • は、funcキーワードによって関数を宣言する.

  • Go言語でのimportの詳細
  • import文は、ソースファイルに依存するpackageパケットをインポートすることができ、パケットをインポートした後、.を使用してパケット内の関数を呼び出すことができる.
  • パッケージをインポートした後に呼び出されなかった関数またはタイプはコンパイルエラーを報告します.
  • importは、以下の2つの方法を使用することができる.
  • 単行インポート
  •   package main
      
      import "fmt"
      import "os"
      import "time"
      import "io"
    
  • マルチライン導入
  • package main
    
    import (
      "fmt"
      "os"
      "time"
      "io"
    )
    
    
  • パケットが他のパケットにインポートされた場合、パケットは順次インポートされる.
  • インポートされたパケットが他のパケット(例えば、パケットB)に依存する場合、まずパケットBがインポートされ、その後、パケットBの定数および変数が初期化され、最後に、パケットBにmain関数がある場合、init関数が自動的に実行される.
  • すべてのパケットのインポートが完了すると、initの変数と定数が初期化され、mainmain関数(存在する場合)が実行され、init関数が実行されます.
  • パケットが複数回インポートされた場合、パケットは1回のみインポートされます.
  • mainを使用してimportパッケージをインポートする場合は、別名を設定できます.
  • カスタムエイリアス:
  • package main
    
    import io "fmt"
    
    func main(){
    	io.Println("Hello Golang")
    }
    
    package main
    
    import (
    	io "fmt"
    )
    
    func main(){
    	io.Println("Hello Golang")
    }
    
  • 点(package)で識別するインポートパケットの後、そのパケットの関数を呼び出すときは、エントリープレフィックス名(使用を推奨)
  • を省略することができる.
    package main
    
    import . "fmt"
    
    func main(){
    	Println("Hello Golang")
    }
    
  • 下線(.)識別子パッケージをインポートする場合、パッケージ全体をインポートするのではなく、そのパッケージの_関数を実行するため、パッケージ内の他の手紙や属性をパッケージ名で呼び出すことはできません.下線(init)を使用する操作は、通常、将来の登録パッケージのエンジンであり、外部で便利に使用できます.
  • 以上の3点は同時に使用できません.