LoginSignup
1
1

More than 3 years have passed since last update.

Go言語でnewとmakeを使ってみた

Last updated at Posted at 2020-02-13

はじめに

Go言語でnewとmakeを使い、違いを備忘のために記します。

環境

macOS Catalina 10.15.3
go1.13.3 darwin/amd64

1. makeを使う

以下はmakeを使用して、変数を初期化する例です。コードは一部抜粋します。

sample.go
s := make([]int, 0)
m := make(map[string]int)
ch := make(chan int)

fmt.Printf("%T\n", s)
fmt.Printf("%T\n", m)
fmt.Printf("%T\n", ch)

[出力結果]

[]int
map[string]int
chan int

2. newを使う

以下はnewを使用して、変数を初期化する例です。コードは一部抜粋します。

sample.go
var p *string = new(string)
var str = new(struct{})

fmt.Printf("%T\n", p)
fmt.Printf("%T\n", str)

[出力結果]

*string
*struct{}

結論

newで変数を宣言すると値が返り、makeで変数を宣言するとポインタが返りました。
newとmakeの違いを問われて答えられなかったので、記事書いて頭に刻み込みます:sweat:

以上!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1