はじめに
訳あってGo言語を勉強することになりました。
完全に自分のメモ用です。
馴染みのない書き方を中心にメモしていきます。
型に別名
main.go
package main
import "fmt"
func main() {
type UtcTime string
var utctime UtcTime = "piyo"
fmt.Println(utctime)
}
結果
piyo
main.go
package main
import "fmt"
func main() {
type UtcDate string
type UtcTime string
var hoge UtcDate = "20231208"
var piyo UtcTime = "170000"
piyo = UtcTime(hoge)
fmt.Println(piyo)
}
結果
20231208
キャストも可能です。
配列
main.go
package main
import "fmt"
func main() {
hoge := [3]string{}
hoge[0] = "coffee"
hoge[1] = "apple"
hoge[2] = "fish"
// hoge[3] = "piyo"
fmt.Println(hoge[0])
fmt.Println(hoge[1])
fmt.Println(hoge[2])
}
結果
coffee
apple
fish
スライス
main.go
package main
import "fmt"
func main() {
hoge := []string{}
hoge = append(hoge, "apple")
hoge = append(hoge, "fish")
hoge = append(hoge, "coffee")
fmt.Println(hoge[0])
fmt.Println(hoge[1])
fmt.Println(hoge[2])
}
結果
apple
fish
coffee
サイズがわからない場合は、スライスを使用する。(JavaでいうListですね
main.go
package main
import "fmt"
func main() {
hoge := make([]string, 0, 1024)
hoge = append(hoge, "apple")
hoge = append(hoge, "fish")
fmt.Println(hoge[0])
fmt.Println(len(hoge))
fmt.Println(cap(hoge))
}
結果
apple
2
1024
スライスを使用する場合は、あらかじめサイズを固定で指定しておいた方が処理が速いそうです。
マップ
main.go
package main
import "fmt"
func main() {
hoge := map[int]string{
1: "apple",
10: "fish",
77: "coffee",
}
fmt.Println(hoge[1])
fmt.Println(hoge[10])
fmt.Println(hoge[77])
}
結果
apple
fish
coffee
(注意)要素の最後は絶対にカンマが必要です。
77: "coffee",
main.go
package main
import "fmt"
func main() {
hoge := map[int]string{
1: "apple",
10: "fish",
77: "coffee",
}
hoge[100] = "egg"
fmt.Println(hoge[100])
fmt.Println(len(hoge))
delete(hoge, 1)
fmt.Println(len(hoge))
}
結果
egg
4
3
マップに追加したり、削除したりできます。
以上。