読者です 読者をやめる 読者になる 読者になる

0.1を10回足した総和は1.0と等しいか?

ruby gold対策。 そういえば試験で、こんなのが出ました。 0.1を10回足した総和は1.0と等しいか? >> sum=0;10.times.each{ |x| sum+=0.1 } => 10 >> sum == 1.0 答えはfalse(等しくない)なんですが、 >> sum == 1.0 => false >> sum => 0.9999999999999999…

RubyのDateTimeの差分

合格済みですが、メモしておきます。 gold対策(模擬試験16)。 DateTimeの演算結果のclassを問う問題です。 require 'Date' d1 = DateTime.new d2 = DateTime.new d3 = d2 - d1 # => (0/1) d3.class # => Rational なんとRationalです。 分かりやすいように…

Rubyの技術者認定試験(Gold)に合格しました

先週落ちた のですが、 なんとかリベンジできました。 本当になんとか合格でした。76/100 というギリギリ。 3、4問怪しい問題があったのですが、それでも合格してるだろうと踏んで完了ボタンを押したら ギリギリでびっくりしました。 ちなみに先週1週間の対…

rubyの「class内のself」と「method内のself」

gold対策(模擬試験15)。 「class内のself」と「method内のself」を問う問題です。 通常class内はclassが、selfはインスタンスが返りますが ちょっと引っかけっぽいです。 class A $a = self def hoge $b = self end end $a # => A $b # => nil # !> global…

rubyのクラス変数

gold対策(模擬試験13)。 インスタンス間で共有され、かつ自分自身のクラスとサブクラスで管理される。 class A @@x = 0 class << self def x @@x end end def x @@x = 2 end end class B < A @@x = 3 end p A.x # >> 3 これだけでも気持ち悪いのですが、 …

rubyのException

gold対策。 rubyのクラスを階層構造で表示 - rochefort's blog 簡単に解説すると、Treeってクラスに Module.constantsで取得したクラス毎に そのクラスと親のクラスを保有するTreeNodeDataクラスのインスタンスとして突っ込んで行って to_sで階層化して出力…

ruby aliasの使い方

gold対策(模擬試験12)。 この手の問題も間違った気がする。 alias式 aliasは式なので、識別子、symbolが利用できます。 下記出力となるようにaliasの内容を回答させる問題。 メソッド名が引っ掛けですが、先に指定するのが新しいメソッド名です。 Hello, W…

rubyのundefについて

gold対策。(基礎力確認問題12) インスタンスメソッドfooをundefしているので、エラーになります。 module Mod def foo puts 'Mod' end end class Cls1 def foo puts 'Cls1' end end class Cls2 < Cls1 include Mod undef foo end Cls2.foo # => # ~> -:17:…

rubyのインスタンスメソッドとクラスメソッド

gold対策。(基礎力確認問題11) class Cls1 def Cls1.foo puts 'Cls1' end end class Cls2 < Cls1 def foo puts 'Cls2' end end Cls2.foo # >> 'Cls1' Cls2.new.foo # >> Cls2 これ自体は、とてもシンプルですが gold受験だけでなくruby書く上でも 以下のこ…

rubyのblockの評価

gold対策。(基礎力確認問題6) <p>Hello World.</p> と出力させるメソッド定義を選択させる問題が出題されました。 (多分正解したはず。) yieldで出力させる方法と、Procオブジェクトとして扱う方法があります。 def tag t print "<#{t}>#{yield}</#{t}>" end tag(:p){ …

rubyのメソッド内で定数は定義できない

gold対策。 class C def foo CONST = 'aaa' end end # ~> -:3: dynamic constant assignment # ~> CONST = 'aaa' # ~> これは単純に知らなかったのですが、メソッド内で定数は定義できません。 (基礎力確認問題5)こっちはエラー内容は同じですが メソッド…

rubyの配列展開について

gold対策(基礎力確認問題2)。 通常の配列展開 はこんな感じ。 p で警告はでますが出力はされます。 a = [0, 1, 2] p a p *a # !> `*' interpreted as argument prefix # >> 0 # >> 1 # >> 2 *付き変数に突っ込む 実コードでは、あんまりやらないとは思いま…

Ryby技術者認定試験Goldに落ちました

66/100 という酷い結果でした。 Ruby公式資格教科書 Ruby技術者認定試験 Silver/Gold対応 (EXPERT EXPASS)作者: 増井雄一郎,小川伸一郎,(株)日立ソリューションズ藁谷修一,川尻剛,牧俊男,Rubyアソシエーション,CTCテクノロジー(株)監修出版社/メーカー: 技術…