Ruby - 这是什么输出

Sim*_*ity 1 ruby proc-object

我知道这段代码可能不太正确:

def print_string(&str)
puts str
end

print_string{"Abder-Rahman"}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,这就是我得到的:

#<Proc:0x03e25d98@r.rb:5>
Run Code Online (Sandbox Code Playgroud)

这个输出是什么?

小智 5

这是Proc对象的默认字符串表示形式.因为"Abder-Rahman"在括号中,Ruby认为你正在定义一个块.你的意思是把str.call你的函数定义放在里面吗?这应该调用您的块并返回您在其中定义的字符串表达式.