• ベストアンサー
  • 困ってます

Ruby 文法 ブロックの中で メソッドを呼ぶ

  • 質問No.8484921
  • 閲覧数143
  • ありがとう数12
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 43% (35/81)

class Hoge
def val
'aaa'
end

def piyo
yield
end
end

h=Hoge.new
h.piyo do
p h.val #<ーここの話
end

上の様に書く時、ブロックの中で、そのクラスのメソッドを呼ぶ時、上の例だと
h.val
と書いてますが、これself.valなどと書きたいのですがERRになってしまいます。
h.と書くのがとても嫌なのですが、なにか良い書き方あるのでしょうか?

質問者が選んだベストアンサー

  • 回答No.1
  • ベストアンサー

ベストアンサー率 48% (4420/9120)

これはどうでしょうか?

class Hoge
def val
"aaa"
end

def piyo
yield(self)
end
end

h=Hoge.new
h.piyo do |this|
p this.val
end
お礼コメント
nomorevup

お礼率 43% (35/81)

すばらしい!!

ご回答ありがとうございました。
投稿日時:2014/02/22 01:16
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ