【Ruby】Goldリベンジならず…。
再び落ちてしまいました。
前回はひさびさの不合格で何ができなかったとか全く覚えていませんが、今回は迷った問題をメモしておいて結果が出た後暗記するという作業をしました…。なので今回の不合格は次の合格への糧になるはずです!
点数:72点
いろんな人のブログを見て回りましたが、割りと2回落ちは普通にあるようですね。といいつつ自分を慰めてみます。
復習
RDoc
ソースコードから仕様書をhtmlで作成してくれます。毎回0〜1問出題されます。
自分が出題されたのは「以下から正しい記述を…」の形式で複数選択でした。
- http:から始まる文字列は自動的にリンクになる
- 「_単語_」と書くと単語がボールドになる
- :nodoc:と書くと読み込まれない
- 番号と-で番号付きリスト
正解は1と3。_で囲むとイタリック、*で囲むとボールド、+で囲むとタイプライター。あと番号付きリストは番号とドットでできます。あと=見出し。行頭に*か-で番号なしリスト、[list1]とかlist1::でラベル付きリストが出ます。覚えることが多い!
0.1足してくと結果ずれるよ問題
衝撃の事実でした。論点はローカル変数のスコープでもブロックに渡すパラメータの省略でもなかったのです。
val = 0 10.times do val += 0.1 end p val #0.9999999999999999
2進に変換するときに循環小数になってしまうらしいです。知らなかった恥ずかしい…
Rubyで浮動小数点数の加算減算がずれないようにする | 秋山ブログ
可変長引数
可変長引数を渡す場合は*をつけます。デフォルト値は指定できません。*は正規表現では0個以上を表すので、可変長引数のメソッドは引数なしでも実行できます。
def p_ary(*ary) p ary end p_ary #=>[]
do-endと{}の違い
これはかなりマニアックですね。
3.downto(0) do |i| p i end 3.downto 0 do |i| p i end 3.downto(0) { |i| p i } #3.downto 0 { |i| p i } #最後のだけは実行できない
なんでかは全くわかりませんが…。結合度が違うらしいです。
Rubyのdo endと{ }は違うらしいよ。 - このブログは証明できない。
ソケットライブラリにあるクラスを全部選べ
知らなかったです…。