动态与静态类型编程语言(Statically & Dynamically Typed Languages)

区分「动态类型」与「静态类型」编程语言非常简单。

在此之前,让我们先看看「类型检查」。

1.类型检查

类型检查(Type checking)是检查构造类型(常量、变量、数组、列表、对象),以及这些类型在上下文使用的过程。

类型检查能最大限度的帮助开发人员减少程序中的 debugging 过程。

类型检查可能发生在编译时「静态检查」或者运行时「动态检查」。

  • 变量类型在编译过程中被检查的是静态编程语言
  • 变量类型在运行过程中被检查的是动态编程语言

2. 静态类型语言

如何区分静态类型语言就像前文说的那样。

在进行编译之前,必须保证有关变量和数据类型的使用是正确的。

在这种类型的语言中,一旦为变量分配了类型,就不能将其分配给其他不同类型的变量。

//例如,定义整形的数据类型之后,不能与字符串类型混合操作。

int number = 1;

静态类型语言的一些示例包括 Java、C、C++、C#、Swift、Scala、Kotlin、Fortran、Pascal、Rust、Go、COBOL 等。
在这里插入图片描述

静态类型语言的一大优点是我们以在运行程序之前修复很多错误,减少了 debugging 的步骤。

这些是静态类型语言的主要优点是一旦成功编译程序,我们就不需要担心任何类型的语法错误。

现在编译器知道每种数据类型是什么。

因此,它可以生成使用更少内存的优化机器代码,与动态类型语言相比,代码的执行速度会更快。

2. 动态类型语言

在程序运行时进行类型检查的是动态类型语言。

动态语言的特点是,开发人员能快速编写,因此不需要每次都指定类型。

number = 1

一些动态类型语言的例子有 Python、Javascript、Ruby、Perl、PHP、R、Dart、Lua、Objective-C 等。

在这里插入图片描述

脚本语言大多是动态的,因此没有编译器来进行静态检查。

但常见的错误依然存在,像解释器误解变量类型导致的错误。

动态类型语言的优点是编写代码很容易,开发人员不必等待编译结果就可以完成代码更改和测试。

4. 两种类型语言的比较

静态类型语言在运行时具有更好的性能并且在运行时速度更快。

这是因为在运行时不需要进行类型检查,并且代码已经被翻译为机器语言了。

但是动态类型语言在开发过程中相对更快并且更灵活。

因此,这两种语言都有一些独特的优点和缺点。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Not_Today.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值