ポインタのデリファレンス
CoddyのGOジャーニー「基礎」セクションの一部 — レッスン 63/109。
ポインタの間接参照 (*) を使用すると、メモリアドレスに格納されている値にアクセスできます。これはポインタの「間接参照」と呼ばれます。
変数とそのポインタを作成します:
func main() {
number := 42
pointer := &number
// ポインタをデリファレンスして値を取得します
value := *pointer
fmt.Println("Pointer:", pointer)
fmt.Println("Dereferenced value:", value)
}出力には、ポインタとそれが指し示す値の両方が表示されます:
Pointer: 0xc000018030
Dereferenced value: 42ポインタ変数の前にあるアスタリスク (*) は、そのメモリアドレスにある実際の値にアクセスします。
チャレンジ
初心者このチャレンジでは、Goにおけるポインタの間接参照(デリファレンス)を練習します。文字列型の値を持つ変数 message と、それを指すポインタ messagePtr があります。
あなたのタスクは、ポインタを間接参照して、それが指している値にアクセスし、表示することです。
チートシート
アスタリスク(*)演算子を使用してポインタをデリファレンスし、メモリ・アドレスにある値にアクセスします:
number := 42
pointer := &number
// ポインタをデリファレンスして値を取得します
value := *pointer
fmt.Println("Pointer:", pointer) // 0xc000018030
fmt.Println("Dereferenced value:", value) // 42ポインタ変数の前にある * 演算子は、そのメモリ・アドレスに格納されている実際の値にアクセスします。
自分で試してみよう
package main
import "fmt"
func main() {
// ここに文字列変数があります
message := "Hello, pointers!"
// これはmessage変数へのポインタです
messagePtr := &message
// TODO: messagePtrをデリファレンスして、それが指している値を取得し、
// 変数 'value' に格納してください
value := ""
// 結果を出力します
fmt.Println("The pointer points to the value:", value)
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。