我试图弄清楚为什么以下代码在 here-doc 字符串 eval 中不起作用:
script = <<FILE
def i_feel(&block)
block_given? ? "I feel #{ yield } :D" : "I don't know how I feel :/"
end
i_feel
# => "I don't know how I feel :/"
i_feel { 'great' }
# => "I feel great :D"
FILE
puts script
`<main>': no block given (yield) (LocalJumpError)
我知道部分原因是字符串插值。但是我该如何让它工作呢?先在没有 here-doc 的情况下尝试一下,看看它是否有效?