为什么脚本语言使用弱类型



已经使用Javascript几年了,最近我经常使用lua。

我对这些语言的唯一大不满是它们使用弱类型。我想知道是否有人有很好的答案;为什么

我个人的看法是,没有任何优势。我的同事建议这可能是因为强类型需要大量的类型检查,所以它会对性能造成很大损害。但是作为一个对编译器如何工作有点不了解的人,我很难接受这种解释。

(对不起,如果这是一个愚蠢的问题,我在这里看到了类似的讨论,但我不同意问题和答案。使用强类型语言进行原型设计同样容易。

动态(运行时)类型检查确实会导致性能下降。请记住,像 C++、Java 和 C# 这样的编译语言可以在编译时强制使用类型系统(即,如果你编写的代码违反了类型系统,它甚至不会编译,更不用说运行了),这允许你跳过很多运行时类型检查,否则你必须这样做。脚本语言中没有这样的机制,因此您必须进行额外的检查。

除了性能影响之外,类型检查还需要一组相当复杂的规则,实现者和(在某种程度上)用户都必须理解这些规则。即使对于知道自己在做什么并且通常能够忍受甚至欣赏某些变量的类型检查的高级用户,严格的类型检查也会妨碍便利。事实上,一些现代脚本语言现在为需要它的用户提供了可选的类型检查。

相关内容

  • 没有找到相关文章

最新更新