Closed7
go メモ
コロンの位置の違い(スライス)
x := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
fmt.Println(x)
fmt.Println(x[2:5])
fmt.Println(x[:5])
fmt.Println(x[5:])
fmt.Println(x[:])
スタート位置を指定しない場合は[:5]のように指定し、スタート位置のみを指定する場合は[5:]のように指定します。
Println:大文字だとPublic
prinln:小文字だとprivate
constはグローバルに書くことが多い
constは型を指定しない
gofmt -w test.go
でgo推奨フォーマットに書き変えてくれる
defer... 該当の関数が実行した後に実行することを宣言する
deferが複数あった場合は、後ろから実行される
ファイルを開いた後に、closeする処理に使ったりする
new と make の違い
new… ポインタ型・structに使う
make… それ以外に使う
struct
大文字で宣言する。小文字で宣言するとprivate扱いになる。
type Hoge struct {
X, Y int
Z string
}
以下は同じ出力結果になる。
struct1 := Hoge{}
||
var struct2 Hoge
struct3 := new(Hoge)
||
struct4 := &Hoge{} // こっちの方がポインタとわかりやすい
値の更新とポインタ型
func changeValue(v Hoge) {
v.X = 1000
}
func changeValue2(v *Hoge) {
v.X = 1000. // 本来は(*v).Xだけど、structならこの書き方でも参照できる
}
func main() {
v := Hoge{1, 2, "test"}
changeValue(v). // {1, 2, "test"}
y := &Hoge{1, 2, "test"}
changeValue2(y) // &{1000, 2, "test"}
}
このスクラップは2023/12/23にクローズされました