Go 入門

Go言語入門② ~import、変数・定数宣言~

[box class="blue_box" title="☑本記事の内容"]

  • importについて
  • 変数宣言について
  • 定数宣言について

[/box]
参考資料:現役シリコンバレーエンジニアが教えるGo入門
+応用でビットコインのシストレFintechアプリの開発
by:Udemy
[box class="glay_box" title="Contents"]

  1. Go言語入門~import~
    1. ソースコード
    2. 解説
  2. Go言語入門~変数宣言~
    1. ソースコード
  3. Go言語入門~定数宣言~
    1. ソースコード
    2. 解説

[/box]

Go言語入門~import~

[box class="yellow_box" title="✔import"]

  • ソースコード
  • 解説

[/box]

ソースコード

fmt,timeのimport


package main

import (
	"fmt"
	"time"
)

func main() {
	fmt.Println("Hello World!", time.Now())
}

(結果)
Hello World! 2021-01-25 08:53:46.802392 +0900 JST m=+0.002023201

一階層下からのimport


package main

import (
	"fmt"
	"os/user"
	"time"
)

func main() {
	fmt.Println("Hello World!", time.Now())
	fmt.Println(user.Current())
}

解説

[box class="green_box"]

  • 複数のモジュールをimportする際は()で囲う
  • 一階層下のモジュールからimportする際は/を使用する

[/box]

今回使用したモジュールはhttps://golang.org/pkg/で確認出来ます。

VScodeでは前回の記事で行ったGo:Install/update
Tools
をすることで、自動でimportの追加、ソースコードの自動整形を行ってくれます。

パッケージの確認は公式サイト以外でもgo doc <パッケージ名>.<ライブラリ>コマンドでも確認可能です。


(例)
$ go doc fmt.Println
$ go doc os/user.Current

Go言語入門~変数宣言~

[box class="yellow_box" title="✔変数宣言の目次"]

[/box]

ソースコード

基本的な変数宣言


package main

import "fmt"

func main() {
	var i int = 1
	var f64 float64 = 1.2
	var s string = "test"
	var t bool = true
	var f bool = false
	fmt.Println(i, f64, s, t, f)
}

(結果)
1 1.2 test true false

変数をまとめて宣言

[box class="glay_box"]

  • 同じ型ならまとめて書く宣言方法もある

[/box]


package main

import "fmt"

func main() {
	var s, sr string = "test", "Yes"
	var t, f boul = true, false
	fmt.Println(s, t, f, sr)
}

(結果)
test true false Yes

varの省略方法

[box class="glay_box"]

  • importと同じくvarの省略も可能

[/box]


package main

import "fmt"

func main() {
	var (
		i     int     = 1
		f64   float64 = 1.2
		s, sr string  = "test", "Yes"
		t, f  boul    = true, false
	)
	fmt.Println(i, f64, s, t, f, sr)
}

(結果)
1 1.2 test true false Yes

var以外の宣言方法

[box class="glay_box"]

  • =:=に変更することでvarを省略して変数宣言が可能
  • 基本的にはこちらの書き方が使用される

[/box]


package main

import "fmt"

func main() {
	var (
		i     int     = 1
		f64   float64 = 1.2
		s, sr string  = "test", "Yes"
		t, f  boul    = true, false
	)
	fmt.Println(i, f64, s, t, f, sr)

	yi := 1
	yf64 := 1.2
	xs := "test"
	xt := true
	fmt.Println(yi, yf64, xs, xt)
}

(結果)
1 1.2 test true false Yes
1 1.2 test true

var:=使い分け

[box class="glay_box"]

  • varは関数の外でも宣言が可能

[/box]


package main

import "fmt"

var (
	i     int     = 1
	f64   float64 = 1.2
	s, sr string  = "test", "Yes"
	t, f  boul    = true, false
)

func main() {
	fmt.Println(i, f64, s, t, f, sr)

	yi := 1
	yf64 := 1.2
	xs := "test"
	xt := true
	fmt.Println(yi, yf64, xs, xt)
}

(結果)
1 1.2 test true false Yes
1 1.2 test true

floatの宣言に関して

[box class="glay_box"]

  • :=を使用する際は少数の場合、自動でfloat64となる
  • float34を使用したい場合はvarで宣言する

[/box]

変数の型確認

[box class="glay_box"]

  • fmt.Printf("%T", 変数)で型の確認が可能
  • 出力では改行が含まれないので、自身で入力する必要がある

[/box]


package main

import "fmt"

func main() {
	yi := 1
	yf64 := 1.2
	var yf32 float32 = 1.2
	xs := "test"
	xt := true
	fmt.Println(yi, yf64, xs, xt)
	fmt.Printf("%T", yf64)
	fmt.Printf("%T\n", xs)
	fmt.Printf("%T\n", yf32)
}

(結果)
1 1.2 test true
float64string
float32

2重宣言

[box class="glay_box"]

  • 一度変数宣言した値を再度宣言するとエラーとなる
  • 一度宣言したものは=でつなぐ

[/box]


(誤)
var i int = 1

func main() {
    yi := 1
    i := 2
	yi := 2
}

(正)
var i int = 1

func main() {
    yi := 1
    i = 2
	yi = 2
}

Go言語入門~定数宣言~

[box class="yellow_box" title="✔定数宣言"]

  • ソースコード
  • 解説

[/box]

ソースコード


package main

import "fmt"

const Pi = 3.14

const (
	Username = "test_user"
	Password = "test_pass"
)

func main() {
	fmt.Println(Pi, Username, Password)
}

(結果)
3.14 test_user test_pass

解説

[box class="green_box"]

  • 基本的に関数の外に宣言する
  • 最初の英字は大文字で宣言

[/box]
定数は最初に宣言をしたら値が変更されない。

変数と区別をつけるために基本的に関数の外、最初の英字は大文字で宣言するといった方法がとられます。

Go言語入門③へ ≫

≪ Go言語入門①へ

目次

-Go, 入門