go言語入門学習サイト

go言語初心者のために基礎から解説します。

go言語のポインタの基本

go言語にはポインタがあります。
ポインタはC言語などにもありますが初めて扱う人だとなかなかイメージしにくいです。
そのポインタを解説します。


【結論】

ポインタはメモリを格納するものでvar p *intにコードを書きます。
ポインタにはポインタ変数、ポインタ型、ポインタ値がある。


【理由】

ポインタは3つの機能の総称です。

・ポインタ型
アドレスを記憶するものです。
int型やstring型です。

・ポインタ変数
ポインタ型で宣言された変数です。

・ポインタ値
ポインタ変数が記憶できる値です。

package main

import "fmt"

func main() {
var p *int
if p == nil {
fmt.Println("p is nil")
} else {
fmt.Println("p is not nil")
}
// p is nil
}

このコードだとintがポインタ型、p がポインタ変数、p is nilがポインタ値になります


【具体例】

package main

import "fmt"

func main() {
i, j := 42, 2701

p := &i // point to i
fmt.Println(*p) // read i through the pointer

p = 21 // set i through the pointer

fmt.Println(i) // see the new value of i

p = &j // point to j

p = *p / 37 // divide j through the pointer

fmt.Println(j) // see the new value of j
}

42
21
73

i, j := 42, 2701をポインタ変数*pに入れて、ポインタ値のi、jで出力します。

2701は*p = *p / 37でポインタ変数*pに入れて37で割りポインタ変数jで出力して73になります。

ポインタ変数は全く経験ないと分かりにくいが
とにかくどんどんコード書いて身につけましょう。







TechAcademy [テックアカデミー]


【アイデミー】AIを学んで一発逆転のキャリアチェンジ!



取材やお仕事紹介などはこちらからお気軽にご連絡下さい。
ysa7825@gmail.com