有人知道为什么scripitng语言使用动态范围规则吗?我在互联网上找不到任何关于此事的事情。
答案 0 :(得分:12)
脚本语言通常不有dynamic scoping。 Scheme,Lua,Ruby和Python都是词法范围的。只有少数几种语言仍在使用动态范围,因为通过查看代码可能很难推断出代码的作用。
当你说“动态范围”时,你想描述什么?
答案 1 :(得分:2)
部分是因为他们可以。与编译语言相比,脚本语言已经具有访问变量的大量开销。添加动态范围很容易,添加诸如闭包之类的有趣功能也是如此。
答案 2 :(得分:1)
这里有一个有用的动态范围概述: 来自http://c2.com/cgi/wiki?DynamicScoping
这包括以下内容:
“动态范围是有用的 替代全局范围 变量。一个函数可以说“让 current_numeric_base = 16;打电话给别人 功能;“和其他功能 将以十六进制打印。然后 当他们返回时,和基地设置 函数返回,基数将返回 无论如何。“