ポインタ - Go

最終更新日: 2026-07-25

TOP(About this memo)) > 一覧(Go) > ポインタ

公式(A tour of Go)

new

type person struct {
    height float32
    weight float32
}
...
p := new(person)
func DeepCopy[T any](src *T) *T {
	dst := new(T)
    ...
}

プリミティブ

package main

import "fmt"

type myString string

type myStruct struct{}

func main() {
	// fmt.Println(&3) // error
	// fmt.Println(&f())// error
	// fmt.Println(myString("aaa")) //error
	fmt.Println(&struct{ a string }{a: "aaa"}) // 構造体は可能
	fmt.Println(&myStruct{})

	a := 3
	fmt.Println(&a)

	b := f()
	fmt.Println(&b)
}

func f() string {
	return "fff"
}
// &3 -> Ptr(3)
// &SomeFunc()-> Ptr(SomeFunc())
func Ptr[T any](a T) *T {
	return &a
}