ジョギング
日課
- お休み
ここ数日
- 暑い...
- 頭痛が続く
竹乃屋
- 香椎駅近くに出来たので, 夕飯を食べてきた
- 出来立てホヤホヤのお店で, 店員さんも施設も初々しかった
今日のるびぃ ~ REx - Ruby Examination にチャレンジ (4) ~
REx - Ruby Examination の問題を自分なりにアレンジした上で 1 〜 3 問くらいずつ解いていく. 正直言ってかなり難しい. 尚, irb に動作確認環境は以下の通り.
$ ruby --version ruby 2.1.10p492 (2016-04-01 revision 54464) [x86_64-linux] $ irb --version irb 0.9.6(09/06/30)
クラスメソッド
以下のコードを実行するとどうなるか.
class Cls class << Cls def foo 'Cls.foo' end end def foo 'Cls#foo' end end p Cls.new.foo
'Cls#foo' が表示される
以下, irb で動作確認.
irb(main):013:0* p Cls.new.foo "Cls#foo" => "Cls#foo"
以下, 解説より抜粋.
- 特異クラス内
class << Cls; end
で宣言されたメソッドは特異メソッドになる - 特異メソッドは
def Cls.foo; end
でも宣言することができる - 設問では, インスタンスメソッドを呼び出している為, "Cls#foo" が出力される
irb(main):001:0> class Cls irb(main):002:1> class << Cls irb(main):003:2> def foo irb(main):004:3> 'foo' irb(main):005:3> end irb(main):006:2> end irb(main):007:1> end => :foo irb(main):008:0> def Cls.bar irb(main):009:1> 'bar' irb(main):010:1> end => :bar irb(main):011:0> Cls.foo => "foo" irb(main):012:0> Cls.bar => "bar"
コマンドラインオプション
Ruby で使用可能なオプションではないものを選択する.
-t -f
その他の選択肢について (ドキュメントから引用).
オプション | 用途 |
---|---|
-l | 行末の自動処理を行う. $\ を $/ と同じ値に設定し, print での出力時に改行を付加する. また, -n フラグまたは -p フラグが指定されていると gets で読み込まれた各行の最後に対して String#chop! を行う. |
-p | -n フラグとほぼ同じあるが, 各ループの最後に変数 $_ の値を出力するようになる. |
全てのコマンドラインオプションについては, 以下のドキュメントを確認すること.
フムフム