静态动态语言和类型是极其容易被混淆的概念,实际上不同语言设计者和使用者对语言理解不同,"静态"和"动态"的概念有很大差异。如下将按照维基百科作为标准。
静态语言和动态语言
- 动态语言是指一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。静态语言,即不支持动态语言功能的语言。
- 动态语言
PHP、Python、Ruby、Shell、Batch、JavaScript 等 - 静态语言
C、ObjC、C++、Java、Rust 等
静态类型和动态类型
- 静态类型:如果一个编程语言的类型检查,发生在编译期,可在不测试运行时期表达式的等价性的情况下进行。例如:
C/ObjC/C++/Java/C#/Go/Swift/Rust/仓颉/Fortran/VB.NET - 动态类型:如果一个编程语言类型检查发生在运行期,支持运行时期(动态)调度已标记的资料。
Python/JS/VB6
强类型和弱类型
- 强类型的基本定义即为,禁止错误类型的参数继续运算。
例如 Python/Rust 等。 - 弱类型意指一个语言可以隐式的转换类型(或直接转型)。
例如PHP/VBScript/Shell 等.
若文章对您有帮助,欢迎关注 程序员小迷 。助您在编程路上越走越好!
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是 程序员小迷 (致力于C、C++、C#、Android、iOS、Java、Kotlin、Objective-C、Swift、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。