はじめに
今年からGoの基礎を勉強しているので備忘録的に残しておこうと思います。
今回は定義編になります。
環境構築
こちらの記事に記載しています。
https://qiita.com/karaagekun20/items/eb858835dc26811104af
エディターは一旦VSCodeを使用しています。
フォーマット
以下のコマンドでコードをフォーマットすることができます。
gofmt -w sample.go
Hello world
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
// 出力結果
Hello, World!
変数
func main() {
var i int = 1
var s string = "text"
var t bool = true
fmt.Println(i, s, t)
}
// 出力結果
1 text true
省力系
func main() {
var (
i int = 1
s string = "text"
t bool = true
)
fmt.Println(i, s, t)
}
// 出力結果
1 text true
Short variable declaration(関数内のみで使用可能)
※varは関数外でも使用可能
また、型を明示的に宣言したい時はvarを使用
func main() {
x := 1
y := "Hello"
fmt.Println(x, y)
}
// 出力結果
1 Hello
定数
const X = 1
const (
Name = "Taro"
Age = 18
)
func main() {
fmt.Println(X, Name, Age)
}
// 出力結果
1 Taro 18
配列
初期値なし
var array [2]int
array[0] = 1
array[1] = 2
// 出力結果
[1 2]
初期値あり
var array []int = []int{1,2,3}
array[2] = 0
// 出力結果
[1 2 0]
要素の追加
var array []int = []int{1,2,3}
newArray := append(array, 100)
// 出力結果
[1 2 3 100]
map
m := map[string]int{"first": 1000, "second": 2000}
fmt.Println(m)
// 出力結果
map[first:1000 second:2000]
fmt.Println(m["first"])
キーを指定
m := map[string]int{"first": 1000, "second": 2000}
fmt.Println(m["first"])
// 出力結果
1000
同じキーに違う値を入れる
m["second"] = 3000
fmt.Println(m)
// 出力結果
map[first:1000 second:3000]
新たなキーを追加
m["third"] = 4000
fmt.Println(m)
// 出力結果
map[first:1000 second:3000 third:4000]
関数
引数なし
func test() {
fmt.Println("Hello")
}
func main() {
test()
}
// 出力結果
Hello
引数あり
func test(x int , y int) {
fmt.Println(x + y)
}
func main() {
test(1,2)
}
// 出力結果
3
返り値あり
func test(x int , y int) int {
return x + y
}
func main() {
fmt.Println(test(10,10))
}
// 出力結果
20
返り値が複数
func test(x int, y int) (int, int) {
return x + y, x - y
}
func main() {
fmt.Println(test(10, 10))
}
// 出力結果
20 0
変数に関数を代入
func main() {
f := func(){
fmt.Println("Hello")
}
f()
}
// 出力結果
Hello
可変長変数
func test(param ...int) {
fmt.Println(param)
}
func main() {
test(10, 20)
test(10, 20, 30)
}
// 出力結果
[10 20]
[10 20 30]
クロージャー
func test() func() int {
x := 0
return func() int {
x++
return x
}
}
func main() {
counter := test()
fmt.Println(counter())
fmt.Println(counter())
fmt.Println(counter())
}
// 出力結果
1
2
3
おわりに
まずは基礎的な部分をまとめてみました。
引き続き学んだことは残していきたいと思います。