☑本記事の内容
- map
- バイト型
- 関数
map
✔mapの目次
基本的なこと
- map[string]int{}のような感じでkeyとvalueを指定する
- 新規で値を入れることもできる
package main
import (
"fmt"
)
func main() {
m := map[string]int{"apple": 100, "banana": 200}
fmt.Println(m)
fmt.Println(m["apple"])
m["banana"] = 300
fmt.Println(m)
m["new"] = 500
fmt.Println(m)
}
(結果)
map[apple:100 banana:200]
100
map[apple:100 banana:300]
map[apple:100 banana:300 new:500]
存在しない値、値の存在確認
- 存在しない値を指定すると0が返ってくる
- 値の存在確認も行える
package main
import (
"fmt"
)
func main() {
m := map[string]int{"apple": 100, "banana": 200}
fmt.Println(m["nothing"])
v, ok := m["apple"]
fmt.Println(v, ok)
v2, ok2 := m["nothing"]
fmt.Println(v2, ok2)
}
(結果)
0
100 true
0 false
初期化
- makeを使うことで初期化を行える
package main
import (
"fmt"
)
func main() {
m := make(map[string]int)
m["note"] = 5000
fmt.Println(m)
}
(結果)
map[note:5000]
- makeを使わない場合はエラーとなる
package main
import (
"fmt"
)
func main() {
var m map[string]int
m["note"] = 5000
fmt.Println(m)
}
(結果)エラー表示
panic: assignment to entry in nil map
バイト型
✔バイト型の目次
基本的なこと
- ASCIIコードを用いて文字表示が出来る
- そんなことも出来るんだくらいの覚えでOK
- ASCIIコード参照サイト
package main
import (
"fmt"
)
func main() {
b := []byte{72, 73}
fmt.Println(b)
fmt.Println(string(b))
c := []byte("HI")
fmt.Println(c)
fmt.Println(string(c))
}
(結果)
[72 73]
HI
[72 73]
HI
関数
基本的なこと
- 関数を呼び出すときはmainで他の関数を指定することで出来る
package main
import (
"fmt"
)
func add() {
fmt.Println("add function")
}
func main() {
add()
}
(結果)
add function
引数の引き渡し
- add(引数)というような感じで引数の引き渡しが出来る
- add側にも記載が必要
package main
import (
"fmt"
)
func add(x int, y int) {
fmt.Println("add function")
fmt.Println(x + y)
}
func main() {
add(10, 20)
}
(結果)
add function
30
値の戻し方
- main関数で変数宣言を行う
- add関数の方にも型の宣言が必要
- addでreturnを使用する
package main
import (
"fmt"
)
func add(x int, y int) int {
return x + y
}
func main() {
r := add(10, 20)
fmt.Println(r)
}
(結果)
30
2つの値の戻し方
- 関数の場合でも型の省略が出来る
- カンマ(,)で区切り2つの値を記載することで2つの値を戻すことが出来る
package main
import (
"fmt"
)
func add(x, y int) (int, int) {
return x + y, x - y
}
func main() {
r1, r2 := add(10, 20)
fmt.Println(r1, r2)
}
(結果)
30 -10
最初に変数名を指定する
- 関数宣言の際に最初に変数を宣言することも可能
- 複数の変数を返す際に分かりやすいようにするために使用する
- 1つだけ値を返す際は別に変数宣言をしなくてもよい
package main
import (
"fmt"
)
func cal(price, item int) (result int) {
result = price * item
return
}
func main() {
r := cal(100, 2)
fmt.Println(r)
}
(結果)
200
関数内部で関数を使用する
- 関数の中で関数を使用することも出来る
- 2通りの関数の使用方がある
- 後者のやり方は並列で関数を使用したい場合に有効(並列に関しては別途説明)
package main
import (
"fmt"
)
func main() {
f := func(x int) {
fmt.Println("inner func", x)
}
f(1)
func(x int) {
fmt.Println("inner func", x)
}(1)
}
(結果)
inner func 1
inner func 1