This page is intended for users in Germany. Go to the page for users in United States.

Ruby Koansを初心者文系が解いていく

はじめまして、札幌の水野と申します。
来春ダイアモンドヘッド株式会社に新卒入社予定です。配属は開発チームです。

私はIT系とは畑違いの法学部の学生でして、プログラムに関しては少しCを触ったことがある程度の初心者です。開発について考えると不安でいっぱいです。

今は入社後に開発で利用するプログラミング言語のRubyを勉強するために、Ruby Koans(http://rubykoans.com/)を解き進めています

一月ほど前に内定式がありまして、その後のオリエンテーションで宮永さんからRuby
Koansの説明を受けた時はさっぱり何の事やら分かりませんでしたが、今では少しづつ理解できるようになりました。
言語仕様もさっぱり分からないプログラミング初心者なので、今は「たのしいRuby」を片手にRuby
Koansで分からなかった点を調べながら問題を解いている最中です。

そんなKoanの問題を解き進める中でいくつか疑問に思った事があります。例えばabout_objects.rbのtest_small_integers_have_fixed_idsメソッドです。
※__に正解を入力します。

assert_equal __, 0.object_id
assert_equal __, 1.object_id
assert_equal __, 2.object_id
assert_equal __, 100.object_id

たのしいRubyでは「オブジェクトはアイデンティティ(ID)と値をもち、すべてのオブジェクトに一意に与えられる」とあります。

私はrubyのobject_idメソッドはインスタンス単位のランダムなハッシュ値が返されるものだと勘違いしていましたが、ウェブのリファレンスを見ながら調べるとTrueclass、FalseClass、NilClass、Symbol、Fixnumクラスのインスタンスなど変更不可なオブジェクトのobject_idは必ず同じ値を返すとあります。さらに調べると整数は2n+1というobject_idになる事が分かります。

ここまで理解して問題を解くと、回答は以下のようになります。

assert_equal 1, 0.object_id
assert_equal 3, 1.object_id
assert_equal 5, 2.object_id
assert_equal 201, 100.object_id

引き続き勉強してもっとRubyに詳しくなろうと思います。
Koansは穴あきのテストコードに自分で値を入力して正しく動作するかを確認できるので、動かしながら勉強するのにちょうどよいですね。

ダイアモンドヘッド株式会社s Stellenangebote
Anonymous
1936352 1062127003862239 5929320466037171604 n
Picture?height=40&width=40
Anonymous
1256501 410509932393905 1175023648 n
29063454 1847953721884383 1542633187639820288 n
7 Likes
Anonymous
1936352 1062127003862239 5929320466037171604 n
Picture?height=40&width=40
Anonymous
1256501 410509932393905 1175023648 n
29063454 1847953721884383 1542633187639820288 n
7 Likes

Wöchentliches Ranking

Weitere Rankings anzeigen

Page top icon