首页 > 解决方案 > 为什么 Ruby 中需要 `instance_variable_set`?

问题描述

有什么意义instance_variable_set?这两条线不一样吗?

instance_variable_set(@name, value)
@name = value"

标签: ruby

解决方案


对于实例变量的“简单”变量赋值,例如:

@foo = "foo"

你做不到

"@#{foo}" = "bar" # syntax error, unexpected '=', expecting end-of-input

但是你可以用 instance_variable_set 做类似的事情:

instance_variable_set("@#{foo}", "bar")
p @foo # "bar"

根据您的问题,这两行不一样吗?,对于那个例子,它们是相似的,但不是人们倾向于给予 instance_variable_set 的用途。


推荐阅读