Ruby

Bignumは遅いとのことで測った

10週遅れぐらいでRHGを読み始めた。 第二章の整数の説明でFixnumとBignumの内部実装の違いについて書いてある。 Rubyのオブジェクトは基本的には各々のクラスの構造体へのポインタ(RBasic.klass)を持つんだけど、効率面を考えて一部のオブジェクト*1はこのポ…

熱海に行って画像に文字をいれるためのコードを書いていた

土日、友人に誘われて熱海で開発合宿もどきのようなものをやってきた。 開催が決まったの金曜深夜だったので完全に行き当たりばったりの企画で、 特に何を作るとか考えていなかったので画像に文字をいれるgemを作っていた。 Github - Tym このgemを使うこと…

メソッドのsender/receiver入れ替え

脳が疲れているとメソッドの呼び出し元を間違えて 1.include?([1,2,3,4,5]) みたいなコードを書いてしまうことがあるので、以下のようなコードを考えた。 当然、sender/receiverどちらにもないメソッドを呼ぶと無限にスタックを積み上げて落ちる。 コールス…

オブジェクトにあとからインスタンス変数を追加

どうしようもないコードとどうしようもないコードを無理やりつなげ合わせなきゃいけない時に。 Objectクラスのinstance_variable_setでもできるけどgetter/setterが必要だったので。

succメソッドの使い方

定義したオブジェクトをRangeで使えるようにするにはsuccメソッドとメソッドを定義する必要があるそうです。 いろんなオブジェクトをいろんな増加値で範囲オブジェクトにしたいコード。

Rubyの例外でFizzBuzz

ensureの中だとretry書けないんですね。 インクリメントもうちょっとかっこよくしたかった。