Я пытаюсь понять поведение ниже:Что происходит, когда имя метода и имя блока одинаковы?
def test
puts "In Method"
end
test
#=> In Method
test {puts "In Block" }
#=> In Method
Моя интерпретация является то, что test
является метод и я передаю {puts "In Block"}
в качестве аргумента этого метода. Поскольку метод не использует аргумент, он печатает значение по умолчанию "In Method"
. Это правильно?
Как мы можем различать вызов блока и метода? Может ли test {puts "In Block"}
также интерпретироваться как блок? Есть yield
единственный способ выполнить блок кода?
Название не имеет отношения к вопросу. – sawa
Думаю, вы его уже редактировали! Благодарю. – Zack
Я исправил грамматические ошибки в названии, но оставил контент как есть. Вы должны исправить это. – sawa