初心者にプログラミングにおける変数を正しく理解してもらうために、「箱」という説明をするのがいいのかどうかには議論があります。
一例:
プログラミングの変数を教えるときの「箱の説明」の是非について。 - Togetterまとめ
否定派の意見を要約すると
- 箱だとすると、複数個入れられそうに思えてしまう。
x = y; のようなケースで箱に箱を入れるように見えてしまわないか。
- 同じケースで、箱に別の箱の「中身」を入れるのだとしても、「中身」のコピーではなく移動に見えてしまわないか。
という感じです。ただ、これらは、それぞれ
- 箱にはサイズと型があって、その型に合うものを一つしか入れられない。
= の右辺は、箱そのものではなく、箱の中身を表す。
- 箱の中身を使ってもなくなるわけではなく、コピーが作られる。
と、プログラミング固有のルールを合わせて教えればいいだけではないかという意見もあります。
いずれにしても、「箱」モデルは、物理的・具体的なモノをイメージした方が理解しやそうだ、という推測から導入されたモデルに過ぎません。しかし、実態は、つまり、プログラミング言語の処理系(コンパイラ)を実装する上では、変数というのは、名前と型とアドレスの組として扱います。なので、メモリを明確にイメージできるレベルに到達しているなら、「箱」にこだわらず、アドレスにつけた名前ととらえてまったく問題ありません。むしろその方が、Cなどのポインタをもつ言語でもつまずかずに済むと思います。
退会済みユーザー
2017/01/25 23:08
2017/01/26 15:23
退会済みユーザー
2017/01/26 23:47
2017/01/27 14:53
退会済みユーザー
2017/01/28 05:52