TECS ジェネレータは ruby を使用して実装していますが、ruby を使っていて困ったことというか、落とし穴になる部分を記します。
# ruby マニュアルの「Ruby の落とし穴」にはない事項であり、あまりはまらないことなのかもしれませんが
シンボルと文字列の区別を意識しないまま実装していて、だいぶ実装が進んだところで、区別できていないことに気づきました。このため、現時点でも区別できていないままになっています。
いつか整理したいのですが、いまだにできていません。
TECS ジェネレータの実装で == を文字列で比較している箇所があります。
またハッシュ変数の添字が文字列になっているものもありえます(ないかもしれませんが、区別できないまま実装していた部分では、よくわかっていません)
解説している記事を見るとシンボルを使ったほうが効率がよいと書かれています。
最初から、そこを意識していればよかったのですが、長い間それにまつわる不具合にぶつかることがありませんでした。
そこが ruby の使い安さであり、初心者はとりあえず知る必要がないことだと思います。
しかし、ruby で最初に書いたプログラムが TECS のジェネレータというような大きなものを作った筆者にとって、思わぬ落とし穴になりました。
ruby について、私には機能やら仕様やら理解できていないところが多々あるようです。
いまだに初心者の域を脱し切れていないかもしれません。
スポンサーサイト