golang知識ポイント要約

3551 ワード

golang知識ポイント要約
1.ネーミング仕様および大文字と小文字のアクセス権
  • golangのネーミングには、アルパカネーミング法が必要であり、下線は表示されません.
  • golangでは、頭文字の大文字と小文字に基づいてアクセス可能な権限を決定します.関数名、メソッド名、定数名、変数名、構造体の名前にかかわらず、頭文字が大文字であれば、他のパッケージにアクセスできます.頭文字が小文字の場合は、このパッケージでのみ使用できます.頭文字の大文字は公有で、頭文字の小文字は私有であると簡単に理解できます.
  • 構造体における属性名の大文字
  • 属性名が小文字の場合、json解析や構造体をリクエストやアクセスパラメータとして解析するなどのデータ解析では解析できません.
    2.2つの特殊な関数
    golangには2つの特殊な関数,main関数,init関数がある.
    main関数はプログラムのエントリで、1つしかありません.
    Init関数は各packageでオプションであり、有無であってもよいし、複数あってもよい(ただし、1つのpackageの1つのinit関数を強く推奨する)、init関数はpackageをインポートするとプログラムが自動的に呼び出されるので、init関数は手動で呼び出す必要はなく、lは1回のみ呼び出され、1つのpackageが複数回参照されると1回のみインポートされるためである.
    3.=と:=の違い
    =変数に値を割り当てるために使用されます.この値を割り当てる変数は、すでに定義されている変数である必要があります.そうしないと、エラーが発生します.
    :=変数を定義し、変数に値を割り当てます.
    4.変数の定義
    標準書式:
    var         

    短いフォーマット:
        :=    

    注意:短いモードには次の制限があります.
  • 変数を定義し、明示的に初期化します.
  • は、データ型を提供できません.
  • は、関数の内部でのみ使用できます.

  • バッチフォーマット:
    var (
           1     
           2     
           3     
    )

    5.定数の定義
    標準書式:
    const           =    

    短いフォーマット:
    const      =    

    バッチフォーマット:
    const (
            1 =    
            2 =    
            3 =    
    )

    注意:定数の初期値タイプは、ブール型、数値型(整数型、浮動小数点型、複素数)、文字列型のみです.
    6.グローバル変数とローカル変数
    ≪グローバル変数|Global Variable|emdw≫:関数の体外で宣言された変数をグローバル変数と呼びます.グローバル変数は、現在のパッケージと外部パッケージ(エクスポート後)で使用されるプログラムの任意の場所で使用できます.
    ローカル変数:関数内で宣言される変数をローカル変数と呼び、それらの役割ドメインは関数内のみであり、パラメータと戻り値変数もローカル変数です.
    注:グローバル変数はローカル変数名と同じであり、名前と同時にローカル変数が優先されます.
    7.配列の定義
    //         
    var arr []string;
    
    //        
    var arr []interface{};
    
    //       
    arr = append(arr,   )

    8.遍歴配列
    for index, value := range arr  {
        
    }

    9.mapの定義
    //   map,map        
    m := make(map[string]string)
    
    //   map,map       
    m := make(map[string]interface{})
    
    //   map  
    m["id"] = 1
    m["name"] = "  "
    
    //  map       
    var arr []interface{};
    arr = append(arr, m)

    10.mapを巡る
    for key, value := range map   {
        
    }

    11.関数タイプの定義
    type関数名func(パラメータ)戻り値タイプ
    例:
    type FormatNumber func(number int) string

    12.関数の定義
    //     
    
    func     ()       {
        
    }

    13構造体及び方法の定義
    //構造体の定義
    type構造体名struct{}
    //構造体の定義方法
    func(構造体名)メソッド名()戻り値タイプ{
    }
    例:
    type Utils struct {}
    
    func (Utils) GetRootPath() string {
        dir, err := os.Getwd()
        if err != nil {
            log.Fatal(err)
        }
        return strings.Replace(dir, "\\", "/", -1)
    }

    構造体メソッドを呼び出します.
    全部で2ステップに分けて、第1ステップ、初期化構造体
    方法一:var utils=new(Utils)
    方法2:var utils=Utils{}
    ステップ2、呼び出し方法
    utils.GetRootPath()
    続けて「Utils」と書くこともできます.GetRootPath()
    14.プロジェクトルートパスの取得
    //        
    
    func GetRootPath() string {
        dir, err := os.Getwd()
        if err != nil {
            log.Fatal(err)
        }
        return strings.Replace(dir, "\\", "/", -1)
    }

    15.変数タイプの判定
    if reflect.TypeOf(変数).Kind() == reflect.タイプ名{
    }
    例:変数tのタイプがint 64であるか否かを判断する
    if reflect.TypeOf(t).Kind() == reflect.Int64 {
    
    }
    
    

    16.タイムスタンプのフォーマット
    func FormatUnix(t int64) string {
        //       ,     2006-01-02 15:04:05(go     )
        timeLayout := "2006-01-02 15:04:05"
        datetime := time.Unix(t, 0).Format(timeLayout)
        return datetime
    }