カレンダー

2022/06
   
  
       

広告

Twitter

記事検索

ランダムボタン

void関数

by 唐草 [2024/03/15]



 間違ったことを覚えてしまうことがある。困ったことに自分の間違いになかなか気付けない。誰かに指摘されるまで正しいと信じ続けてしまう。酷いときには指摘してくれた相手が間違っていると反論すらしてしまう。
 これが思い込みの怖いところ。
 きっとぼくも誤った思い込みがいくつもあるはず。間違った知識を堂々と披露して裏で失笑をかっていることもあるだろう。日々痛い振る舞いをしているかもしれないが、幸運にも誤った思い込みの1つに気づけた。
 それはプログラムに関するもの。
 プログラムには、いくつかの処理を1つにまとめた関数という概念がある。数学の関数と同じで、値を与えると対応した値を返してくれる。プログラムでは何度も行う処理を関数にまとめる。ゲームなら指定座標にキャラクターを配置できるかを確認する処理なんかを関数にまとめる。
 数学の関数なら値を返すのが普通だが、プログラムでは関数内部で処理が完結して値を返さないこともある。void関数とも呼ばれ、画面描画処理なんかがそれに当たる。コンピュータに「画面更新しておいて」と丸投げするような感じだ。
 void関数はよく使う。だが、void関数の使い方を勘違いしていた。なぜかvoid関数の処理を途中で中断しては絶対にダメだと思い込んでいた。だから、計算を続ける必要がないことが明らかになっても、途中でエラーが起きても、必ず関数の最後の行まで実行するようにプログラミングしていた。
 実際にはそんなことはない。void関数だって中断してもまったく問題はない。
 不思議なことに値を返す関数では普通に中断をしていた。なぜかvoid関数だけ処理が異なると思い込んでいた。おそらく関数の処理結果を返すreturn命令の後には、必ず何かを書かねばならないと思いこんでいたのが原因だ。
 この思い込みが解けた今、ぼくの関数はスマートになった。誤解したままだったらスパゲッティコードの山盛りになっていたはず。
 小さな気付きかもしれないが、ぼくにとっては幸運な気づきだった。同時に自分がどれだけの思い込みを抱えて日々を送っているのかと思うと空恐ろしくなる。