NEWS / BLOG
2016.06.01
1人芝居 さちこのさち
#プログラマー

せーいてっきっ・がったがた・せーいてっきっがったがた・てぃーがさーわーぐぅー

おはこんばんニャ~プログラムが上手く書けない KNT です (ハイスコアラーネームだよ) てぃっ てぃっ てぃっ

あぁ... せ・い・て・き ってみ・りょ・く的な響きですね!

型にはめるだけの おもちゃ が有るんですから

静的型チェックなプログラミング言語によってあらゆる事象を型に紐付けることが楽しい事は 自明です!

型抜かれたフィギアを愛でている人もいますし型には愛さえも芽生えさせる力があります。

なんじら型にはまれ、さもなくば ランタイムエラーだ!

その せ・い・て・き 魅力の為に かえる課長 に翻弄される 部下さちこ のドラマの話をしたいと思います。
(この記事は個人的見解を述べたものであり我が社の総意では有りません*1)


ストーリー

値の入れ物としての int ってありますやん

数値入れてるだけですし

普通に使う分には特に問題ないやん

でね 10 桁の数字入れるだけだし int でいいやんっ
(C言語触り始めた時から int は32ビットですが何か?*2)

でプログラムするやん

"やっぱ・やんぴ 20 桁にしますっ" て言われますやん

long long がいるやん
(64bit と思ってね)

テキストエディタで int から long long へ乱暴に変換すると関係ないとこまで変わりますやん

あきませんやん

でね

静的型チェックなプログラミング言語なんで宣言部分書き換えてコンパイルエラーが出る所を直しますやん

エラー箇所のソース書き換えてって数十から数百やるって きっつい ですやん

遅くなっちゃうと かえる にそっくりな上司に叱られるやん

そんな話ですぅ


1人芝居 さちこのさち 開演

かえる課長
            さちこくん!
            何をしているんだね
            まだ 20 桁に対応できておらんのかね!?
さちこ
            変更が必要なところが沢山あって大変なんですぅ
かえる課長
            しょうがないな さちこくん こうなったからには分かっているな?
            さちこくん!
さちこ
            課長やめて下さい!
かえる課長
            よいではないか!さちこくん!
さちこ
            かっ!ちょ!おぉ! や・め・て・く・だ・さ・いぃ!
かえる課長
            あああああ..... さちこくん くん くん くん あ ぁ ぁ ぁ
                (ビルからハンドパペットのカエルがおちる
さちこ
            もおーこんな生活いやーーーーーー

1人芝居 さちこのさち つづく (嘘


さちこ はどうしとけば良かったのでしょうか?

わずかな変更で型の実体を置き換える場合は typedef を使えばたやすく置き換えることが可能です

Before

    typedef int SpecialDigit;
    enum class SpecialDigit : int {};
    
After

    typedef long long SpecialDigit;
    enum class SpecialDigit : long long {};
        

これで かえる課長 が襲ってくるのを回避出来ますね! めでたしめでたし

typedef によって型の代替名を作り、 それをソース中で記述することによって柔軟性が向上しうる事が有りますので、 ケースによっては組み込み型をそのまま使わずに typedef, enum class を適宜使ってみてはいかがでしょうか?

さてxeenでは型にはまってるようで型破りなプログラマを募集してます、興味を持ってもらえましたら此方をご覧ください。

LLAP


*1 : 勢いで書いているので励ましのお便り待っています。
*2 : 実際には int 幅は 32bit => 16bit => 8bit という経験をしてます。