【Golang】変数定義、定数

Golangの基礎学習〜Webアプリケーション作成までの学習を終えたので、復習を兼ねてまとめていく。 基礎〜応用まで。


package main

import (
    "fmt"
)

func main(){
    fmt.Println("変数")

    //変数宣言 明示的な定義
    //var 変数名 型指定 = 値
    //var i int = 1
    //下記、まとめて変数宣言( )で書く
    var (
        i    int     = 1
        f64  float64 = 1.2
        s    string  = "test"
        //2つまとめて変数宣言(同じ型の場合)
        t, f bool    = true, false
    )

    //変数宣言して値を入れない場合、初期値が入る
    var ii int

    //ショートカット変数 暗黙的な定義
    //明示的な定義に対して、型指定の必要がないという特徴を持つ。
    //var 型指定が不要になる
    //関数内のみ宣言可能
    //関数外ではvarで変数宣言する
    //自動で型を入れてくれる。型推論と呼ばれる。
    xi := 1
    //デフォルトではfloat64になる。型を明示的に宣言する場合はvarを使う
    var xf32 float32 = 1.2
    xs := "test"
    xt, xf := true, false
    fmt.Println(xi, xf32, xs, xt, xf)

    //このような書き方もできるが、:=を使った方が望ましい。
    //var a = 1

    //明示的、暗黙的な定義の使い分け
    /*
    可能であれば、基本的には型指定を使った方がいい。
    一般的に静的型付け言語では、静的型によるプログラムの整合性の保証 という メリットを得る代わりに
    プログラム全域で煩雑な型指定が必要になるという代償を払う。
    Goは多くの局面で型指定を省略できるように設計されている為に、静的型付け言語のメリット享受しつつ、そのデメリットを軽減するためにも
    積極的に型指定をして、開発効率の向上を図るのが正しい。
    */

    //共通
    //複数回同じ変数を定義することはできない。代入(上書き)は可能。
    //関数内の変数は、関数内でのみ使用可能。
    //使われていない変数を定義されている場合、エラーになってしまう。




    //定数
    //定数は後から変更できない
    //後から変更しない値の場合、セキュリティ上望ましい。
    //関数内にも書けるが、定数はグローバルに書くことが多い
    //他のプログラムからも呼び出す場合は、頭文字を大文字にする

    //単体
    const Pi = 3.14
    //const Pi = 3 はできない

    //複数
    const (
        Username = "test_user"
        Password = "test_pass"
    )


    //下記、intの最大値
    //下記エラー
    // var big int = 9223372036854775807 + 1

    //constは型指定しないので、最大値をしてもエラーにならない
    const big = 9223372036854775807 + 1
}

bannerAds