0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Go言語 fmt.scanで取れる値とは

Posted at

タイトルの詳細を少し気になったので思ったので調べてみた。

fmt.Scan関数で読み取る変数は、ポインタでなければならない。
これは、fmt.Scan関数が読み取った値を呼び出し元の変数に格納するためにポインタを使用するためです。

具体的には、fmt.Scan関数は、与えられた引数のアドレスに対して読み取った値を格納します。
したがって、呼び出し元の変数のアドレスを渡す必要があります。
これは、値渡しではなく、参照渡しの仕組みです。

例えば、以下のコードでは、fmt.Scanによって&x&yに対して読み取りが行われています。

var x, y int
fmt.Scan(&x, &y)

ここで、&はアドレス演算子で、&xは変数xのアドレスを表します。
fmt.Scan関数は、引数に渡されたアドレスに対して読み取った値を格納するため、&x&yのようなポインタが必要となります。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?