为什么绝大多数编程语言要求变量的名称必须在代码中显式地给出?

例如,能否做到定义一个变量,名称为一个字符串变量的内容。而这个字符串变量的内容是要在计算过程中才知道的,在程序运行前并不知道。 实现起来有什么困难?
关注者
84
被浏览
66,985
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

还就打上了Python的标签。你需要的需求在Python中完全是可以实现的:

hello = 'Hello, world!'
variable = 'hello'
print(eval(variable)) # => Hello, world!
print(globals()[variable]) # => Hello, world!

Ruby自从2.1.3开始,除了eval之外,Binding类支持local_variable_get和local_variable_set等骚操作。

如果你将binding泄漏出去,甚至可以让程序从外部修改你的局部变量:

fiber = Fiber.new do
  hello = 'Hello, world!'
  puts hello
  Fiber.yield binding
  puts hello
end
b = fiber.resume # => Hello, world!
b.local_variable_set :hello, 'Hello, Ulysses!'
fiber.resume # => Hello, Ulysses!