nil

Rubyの勉強しています。いろいろと教えてください。

Ruby

同じ文字列でもオブジェクトIDは違う

Rubyには、オブジェクトを識別するためのオブジェクトIDというものがあります。同じ文字列を変数に格納してもオブジェクトIDは変わってきます。 #string 10.times do str = 'hoge' p str.object_id end #=>70145884221500 #=>70145888772040 #=>701458887719…

Rubyのオブジェクトのメモリについて

この前こんな記事書きました。yoskmr.hatenablog.com オブジェクトのメモリの使用量を調べるモジュールありますよという記事です。この時に謎のままにしていた以下のコードの2行目の「GC::INTERNAL_CONSTANTS[:RVALUE_SIZE]」すが、調べたら正体がわかった…

RubyのFixnum

こんちはっす Rubyの世界は全てオブジェクトである。ということを頭に叩き込んで勉強しております。しかし、最近奇妙なものにぶつかりました。 変数はオブジェクトを指すタグであって、変数は直接オブジェクトを保持しているわけではないという認識です。下…

Rubyの変数と参照値渡し

AOJでRubyで競技プロの問題解いてて、Rubyってメモリ消費が多いんだなーてことを実感。Rubyのオブジェクトがどれくらいメモリを消費しているのか確認できる方法調べてみました。 require 'objspace' rvalue_size = GC::INTERNAL_CONSTANTS[:RVALUE_SIZE] num…

Rubyのクラスについて

Rubyはすべてオブジェクトなのでクラスもオブジェクトです。クラスはClassクラスのインスタンスになります。classを定義方法は以下、 class hoge end Classクラス Classクラスにも親がいます。ancesotresメソッドを使って確認してみます。 Class.ancestors #…