武田哲也さんのRuby技術者認定試験受験記の続き
#RubySilver 合格。94点。 結果だけ見ると危なげないが、自信ないのが10問ほどあった。そういう問題は「Rubyはこういう仕様であってほしい、そういう仕様にするはず」という勘で答えたのがうまくいったようだ。
2015-02-03 12:30:23#RubySilver さて。金銀揃ったので、これで晴れてワタスもRuby認定(ど素人ではない証明付き)技術者になった! Rubyアソシエーションさんにはだいぶ貢いでしまったな〜。
2015-02-03 12:33:32#RubySilver 悩んだところは試験終了後すぐメモった。13個ぐらいあった。試験中のメモは持ち帰れないので、キーワードをアルファベット順に並べて、reduceして暗記してから会場を出たw。50問一通り解くのに40分ほど、全部見直して暗記メモ作っても75分ほどで済んだ。
2015-02-03 12:38:28#RubySilver そういや今回の試験は最後にアンケートがあった。Rubyを主にどこで勉強しましたか?経験何年ですか?とかそういうやつ。エントリー試験ってことで銀だけあるんかな?
2015-02-04 01:21:53#RubySilver 2/3に合格したRuby Silver試験について、個人的に悩んだ点を覚え書いときます。 (例によってNDAがあるので、問題そのものを書いたりはしません)
2015-02-05 21:51:58#RubySilver irb(main):001:0> "A".ord => 65 こんなメソッドあったなんて…。(to_i を選んでしまった) docs.ruby-lang.org/ja/2.1.0/class…
2015-02-05 21:52:28#RubySilver スクリプトの文字コードを指定する「マジックコメント」。 なんと!「# *coding: 文字コード」形式なら何でもよかったとは…! qiita.com/jnchito/items/… ちなみに「charset」なんか当然ない!(間違えた)
2015-02-05 21:53:10#RubySilver Enumerable#count docs.ruby-lang.org/ja/2.1.0/class… a = ["foo", "abc", "foo", "def"] "foo"を数えるのは下記どっちでもいける。 a.count("foo") a.grep(/f/).count
2015-02-05 21:54:24#RubySilver Array#delete は指定した要素を「すべて削除」。正解したけどちょと自信なかった。 docs.ruby-lang.org/ja/2.1.0/class…
2015-02-05 21:55:56#RubySilver Array#each_index ある。使ったことないけど。 docs.ruby-lang.org/ja/2.1.0/metho…
2015-02-05 21:56:12#RubySilver "foo\nFOO\nbar\n_foo".grep(/fo/) => NoMethodError これまんまと引っかかったー。Stringにはgrepない! 当然、改行でバラしてマッチする行だけ配列で返す…なんてしてくれるわけない。
2015-02-05 21:58:30#RubySilver Hash#size について。 irb(main):001:0> h = {a:1, b:2, c:3} => {:a=>1, :b=>2, :c=>3} irb(main):002:0> h.size => 3 そらそうや。
2015-02-05 21:59:00#RubySilver Hashのシンボル形式キーを文字列で書いてしまった場合 h = {a:1, b:2} # OK h = {"a":1, "b":2} # SyntaxError こんな間違いせーへんから知らんって~!(一応正解)
2015-02-05 22:00:05#RubySilver File.join("", "ruby") => "/ruby" あ、もしや "./ruby" になったりする??と悩んだ。迷走しなくて正解。
2015-02-05 22:00:47#RubySilver おなじみ正規表現。ちょっと悩んだやつ。 /\A(Y|y)es\z/ は "Yes" か "yes" にしかマッチしないが、 /\AY|yes\z/ は "Yesitis" とかにもマッチしてしまう。
2015-02-05 22:01:14#RubySilver (続き)「|」の優先順位が低いため、後者は「/\AY/ か /yes\z/ のどっちか」という意味になってしまうのだろう。
2015-02-05 22:02:24#RubySilver String#split ref.xaio.jp/ruby/classes/s… 引数patternはデフォルト$;(nil) ⇒ 空白文字(スペースやTABなど)で分割、となる。 空文字列 "" を渡すと全文字を分割。(文字でない所にマッチ、という理屈のはず)
2015-02-05 22:02:54#RubySilver Time#+ に渡すのは「秒」。まあ当然か。 docs.ruby-lang.org/ja/2.1.0/class…
2015-02-05 22:03:19