いつきコンテンツ

ヘルプ

カウンター


2009-01-16 色々弄ってますw

rubyとかRailsとか。

[日記][プログラム] rubyの整数型って面白い挙動するなぁ。

ちなみにruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mswin32]。CRuby(MRI)バージョンね。

irbでつつくと、こんな感じ。

irb(main):001:0> 0.object_id
=> 1
irb(main):002:0> 1.object_id
=> 3
irb(main):003:0> 2.object_id
=> 5
irb(main):004:0> 3.object_id
=> 7
irb(main):005:0> -1.object_id
=> -1
irb(main):006:0> -2.object_id
=> -3
irb(main):007:0> -3.object_id
=> -5
irb(main):009:0> 1.equal? 1
=> true
irb(main):010:0> "1".equal? "1"
=> false
irb(main):017:0> 1073741823.object_id
=> 2147483647
irb(main):018:0> 1073741822.object_id
=> 2147483645
irb(main):019:0> 1073741824.object_id
=> 21857200
irb(main):020:0> -1073741824.object_id
=> -2147483647
irb(main):021:0> -1073741825.object_id
=> 21850170
irb(main):022:0> 1073741823.equal? 1073741823
=> true
irb(main):023:0> 1073741824.equal? 1073741824
=> false
irb(main):024:0> -1073741824.equal? -1073741824
=> true
irb(main):025:0> -1073741825.equal? -1073741825
=> false

なので

irb(main):001:0> 1073741823.class
=> Fixnum
irb(main):002:0> 1073741824.class
=> Bignum
irb(main):003:0> -1073741824.class
=> Fixnum
irb(main):004:0> -1073741825.class
=> Bignum

なのです。

Fixnumはクラスのフリをしているけれど、object_idだけ見るとインスタンスは1個しか存在しないらしい。で、object_idは、整数値*2+1。全部奇数。

で、Bignumはクラスなので幾つもインスタンスが存在すると……。クラスのobject_idは全部偶数っぽいなぁ。

この割り当て方に感心したワシ。結構一般的なのか?

整数型で、(普通は使わないと思うけど)インスタンスを比較すると、時々妙な結果になると言うことは分かりました(笑)

似たような話でObject.superclassがnilでnil.classがNilClassで、NilClass.superclassがObjectというループ構造をしているっぽいです。NilClass.superclass.superclass.classがNilClassだしな(笑)

プログラミング言語(rubyな)を勉強し始めて最初に遊んでみたのが、こんな内容なワシ。 なぜ最初にこんな事をするかなぁ(笑)

もっと他にやることあるだろう、と自己つっこみ。

[日記][覚え書き][メモ] rubygemsのアップデート方法

まず最初に怒られた環境変数JAVA_HOMEを設定。javaのインストールディレクトリをさせばいいらしい。やり方は省略。

んで、Windowsで最新のRailsをJRubyで動かす。を参考に。

> jruby -S gem install rubygems-update
> jruby -S update_rubygems

これでgemが1.3.1に上がりました(*゜ー゜)ノ

[日記][覚え書き][メモ] jrubyのアップデート方法

わからんかったから、JRubyのページからjruby-bin-1.1.6をDLしてきて適当に展開。……鬼のように小さいファイルを大量に展開してくれるのな、これ……(笑)

で、NetBeansのRubyプラットフォームマネージャーで、プラットフォームを追加。展開した中\bin\jruby.batあたりを指定してやれば良いらしい。

ついでにFast Debuggerをインストールをぽちっとな。エラッタ……。

一旦RubyGermsへ行ってRubyプラットフォームをJRuby 1.1.6にしてから、新しいGemからrailsを選択してインストール。多分これで使える……かな?(笑)

[ネタ][情報] TVA「ヘタリア Axis Powers」キッズステーション放送中止のお知らせ。

ネタをネタと割り切れない人が多すぎるようです。……まぁ笑って過ごせる人ばっかりだったら戦争も起きんわなぁ。

ヘタリア自体は、聞いた当初から「あぶねぇ」とは思ってた事が現実に、って感じですね。

[日記] NetBeansの初期設定終了~

結構めんどくさい。

Last Update: 2016-02-10 00:40:28

カレンダー

2003|04|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|07|08|11|
2013|03|05|08|
2014|01|
2015|04|05|06|07|09|10|12|
2016|01|03|05|06|10|11|
2017|06|
2018|05|08|09|10|11|
2019|04|08|
Generated by tDiary version 4.1.2 + amazon(DB Patch 0.2.1) + counter(DB Patch 0.2) + IKPatch version beta 4.0.1.
Powered by Ruby version 2.1.5-p273 with ruby-fcgi