[box class="blue_box" title="☑本記事の内容"]
- importについて
- 変数宣言について
- 定数宣言について
[/box]
参考資料:現役シリコンバレーエンジニアが教えるGo入門
+応用でビットコインのシストレFintechアプリの開発by:Udemy
[box class="glay_box" title="Contents"]
[/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]
定数は最初に宣言をしたら値が変更されない。
変数と区別をつけるために基本的に関数の外、最初の英字は大文字で宣言するといった方法がとられます。