在Ruby中,如果你将一个函数赋值给一个变量,为什么它会自动运行?

In Ruby, if you assign a function to a variable, why does it automatically run?

使用下面的代码:

variable = puts "hello world".upcase

为什么 Ruby 会自动将 Hello world 大写,而不先调用变量?我知道您正在将函数设置为变量,如果调用该变量,它将 return return 值(在本例中为 nil),但为什么 Ruby几乎在未经许可的情况下运行方法puts "hello world".upcase(没有调用它,只是分配给一个变量)?

您没有将函数分配给变量。

这与

相同
variable = (puts("hello world".upcase))

需要执行puts将返回值赋值给变量variable(笑)

这是一种将方法分配给变量的方法。

puts_method = method(:puts)