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

☑本記事の内容
  • importについて
  • 変数宣言について
  • 定数宣言について
参考資料:現役シリコンバレーエンジニアが教えるGo入門
+応用でビットコインのシストレFintechアプリの開発
by:Udemy

Go言語入門~import~

✔import
  • ソースコード
  • 解説

ソースコード

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())
}

解説

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

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

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

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


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

Go言語入門~変数宣言~

ソースコード

基本的な変数宣言


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

変数をまとめて宣言

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

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の省略方法

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

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以外の宣言方法

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

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:=使い分け

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

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の宣言に関して

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

変数の型確認

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

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重宣言

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

(誤)
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言語入門~定数宣言~

✔定数宣言
  • ソースコード
  • 解説

ソースコード


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

解説

  • 基本的に関数の外に宣言する
  • 最初の英字は大文字で宣言
定数は最初に宣言をしたら値が変更されない。

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

Go言語入門③へ ≫

≪ Go言語入門①へ

目次

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUT US
サカイザ
機械設計→技術営業→SEと転職し、
現在フリーランスエンジニア
北海道出身東京在住
現在、Go案件を受注中
扱えるスキルGo,GCP,Java,AWS,SQL,Python,PHP,etc...
合同会社エンブリオ 代表社員