最近、プログラミングをしていてすごいと思ったことがある
変数とは、「あらかじめ定義したモノ」と言う固定概念があった
しかし、変数名そのものを「変動」させる必殺技があったのだ
それが「ダイナミック変数」
通常$Aと定義したらその名前をずっと使うのだが、ダイナミック変数の場合は
$Aの時もあれば、$Bになることもあるという何とも都合の良いやり方だった
ただ、これの考え方がひと癖ある。
ダイナミック変数には「原則、固定変数は必要無いと書いたが」実は、最低1個は固定変数が必要になる。
つまり、種になる部分は固定で必要になるわけ
固定変数$Aを定義
その中に、データとしてBが入る
ダイナミック変数とは変数マーク$の次にさっきの固定変数$Aを書く・・・
ってことは
$$Aとなるのか?といえば、「正解なんです」
普通では考えにくいこの$$Aであるが
これは 変数記号$+$Aの中身つまりBで「$B」として、考える訳
それならば、$Aと同じではないか?
確かにそうである
ダイナミック変数の本当の使い方はこの後にある
まず$Aの中のデータを使い$Bをつくった、その後$Bに「データC」を打ち込む
コウすることにより
$BにCのデータが入る
本当であれば
$A=B
$B=C
と書かなければいけないモノが
$$A=C
の1文で済んでしまう
さらに$Aの中身だけ変えてしまえば
$Bが$Dにも$Fにも変えることが可能になる訳
こんな便利な方法にもかかわらず、考え方が難しいためなかなか理解されにくい
この方法をさらに応用した手法が「連想配列」という方法があるのだが
この話についてはまた今度
今日の教訓
ダイナミック変数を制するモノはプログラムの最適化を制する
(日本語では動的変数と呼ぶ)
この記事に対するコメントはありません