弱类型和强类型的优缺点
Posted
技术标签:
【中文标题】弱类型和强类型的优缺点【英文标题】:Pros and cons of weak and strong typing 【发布时间】:2011-08-02 05:14:36 【问题描述】:我正在从 Java 过渡到 php/javascript,并发现使用弱类型语言的所有实际方面。
由于我能够全面比较这两种方法,我想了解每种方法的优缺点。另外,还有其他形式的打字吗?
【问题讨论】:
所有优点和缺点都取决于任务 你可能也会感兴趣:***.com/questions/3376252/… 类似问题:***.com/q/1489674、***.com/q/4470012、***.com/q/47972、***.com/q/2025353、***.com/q/880410、***.com/q/3376252 【参考方案1】:弱动态类型的编程语言(如 PHP)使程序员的错误以不连贯的行为发生(例如,程序会显示愚蠢的信息)。
使用强动态类型语言(如 python),编程错误会导致错误消息。它使错误更容易被发现和诊断,但通常在显示消息后程序变得不可用。
最后,使用强静态类型语言(如 Java、Ada、OCaml、Haskell 等)可以在编译时发现一些错误,从而降低提供错误程序的风险。 (但发布时间较晚)
【讨论】:
"稍后发布。" - 有任何证据吗?如果我们不谈论一些 100 行的琐碎程序,我会怀疑。 PHP 是您列出的语言中唯一一种纯粹为 Web 环境而开发的语言。网络上下文只处理字符串。【参考方案2】:是的。 Python 使用Dynamic Typing。
通常,这取决于个人偏好和给定语言的预期用途的架构师所扮演的角色。
例如,弱类型的 PHP(一种脚本语言)是有意义的,因为它通常执行的任务远没有那么复杂,并且与编译语言相比需要更少的约束。
【讨论】:
【参考方案3】:关于你的最后一个问题,Mathematica is said to be "typeless."
高级、无类型、动态语言,在所有数据、函数和接口中具有一致的符号语法和语义
【讨论】:
【参考方案4】:PHP/javascript 可用于开发比 Java 更好看的 UI。 PHP 将比 java 具有更少的限制并且易于学习和执行。
【讨论】:
这不是强/弱类型的问题,是吗? PHP 和 Javascript 在 Web 堆栈中扮演不同的角色,而 PHP 或 Java 是否比 Java 更容易学习和执行还值得商榷。 JavaBits 是对的;这甚至不能解决问题。以上是关于弱类型和强类型的优缺点的主要内容,如果未能解决你的问题,请参考以下文章