前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >编程语言的弱类型、强类型、动态类型、静态类型的解释

编程语言的弱类型、强类型、动态类型、静态类型的解释

作者头像
黎鹤舞
发布2024-03-19 15:24:21
760
发布2024-03-19 15:24:21
举报

编程语言的弱类型、强类型、动态类型、静态类型的解释

一、弱类型和强类型的区别

​ 弱类型语言和强类型的语言的区分点,在于 是否支持隐形类型转化

越支持隐式类型转化,越是弱语言类型; 越不支持隐式类型转化,越是强类型。

隐式类型转化: 是指在表达式计算或赋值过程中,系统自动将一个数据类型转换为另一个数据类型,而无需显式地(人为的通过代码实现)指定转换操作。这种类型转换是由编程语言或数据库系统自动执行的,目的是使表达式能够顺利地进行计算或赋值。

隐式类型转换通常发生在不同数据类型之间的运算或赋值操作中

例如在SQL语言中,当一个整数与一个浮点数相加时,系统会自动将整数转换为浮点数,以便进行运算并得到正确的结果;或者对int类型列 输入一个字符串类型,如果系统发现该字符串可以转化成int类型数字,则会将其自动转化成int类型数字

而强类型语言不支持这种隐式类型转化:

如java:

不同类型之间会发生报错,除非进行强制类型转换。

要注意的是:强类型和弱类型并没有严格意义上的定义

像是 C++,允许某些类型的隐式转换的同时却又对类型要求严厉,不能将一个指针随意地转换为一个整数。我们很难定义它究竟是弱类型语言还是强类型语言。

强类型和弱类型的存在只是为了让我们更好的理解语言特性;如强类型语言在类型安全性上有更严格的要求,而弱类型语言在类型安全性上通常更为放松。

二、动态类型和静态类型的区别

很多初学者很容易把这两个概念和弱类型,强类型的概念混淆,其实这是两个完全不同方向上的概念

静态类型语言: 是指在编译时变量的数据类型必须确定的语言,静态类型语言要求在使用变量之前必须声明该变量的数据类型。

动态类型语言: 是在运行时确定数据类型的语言。变量使用之前不需要类型声明,如python中,变量a=1,则a的类型就是整型,若a=”abc”,a的类型就是字符串。

三、总结

类型名

类型特点

强类型

不支持静态类型转化

弱类型

支持静态类型转化

静态类型

变量使用前需声明数据类型,程序运行过程中 数据类型不允许改变

动态类型

变量使用前不需要声明数据类型,程序运行过程中 数据类型可以改变

对应的,根据上述类型我们也可以根据类型特点,总结出主流语言的语言特性:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 编程语言的弱类型、强类型、动态类型、静态类型的解释
    • 一、弱类型和强类型的区别
      • 二、动态类型和静态类型的区别
        • 三、总结
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档