当前位置: 首页 > news >正文

静态类型、动态类型、强类型、弱类型

静态类型、动态类型、强类型、弱类型

静态类型与动态类型

变量类型是否会随赋值变化——何时确定变量的类型

  • 静态类型:代码中需要指定变量的类型(或者自动推导),编译期就进行类型检查,无须运行代码即可确定变量的类型。变量类型运行时不可更改。
  • 动态类型:代码中不需要指定变量的类型(即使指定了也只是类型注解),运行期间第一次赋值该变量时进行类型检查,并且变量再次赋值时会重新检查和确定其新类型。只有运行代码才能直到变量的当前类型。

image

强类型与弱类型

是否保证类型安全——是否允许隐式类型转换

强类型:只允许发生有意义的安全的隐式类型转换。只能进行强制类型转换。

弱类型:允许发生隐式类型转换。


image

举例

语言 静态 / 动态 强 / 弱 理由
C/C++ 静态 允许大量跨语义隐式转换(如 int→char、指针随意强转)
Python 动态 允许安全隐式转换(int→float),但禁止无意义转换("5"+1 报错)
Go 静态 隐式转换仅允许 “安全场景”(如 fmt 格式化),跨类型转换必须显式(int→float64 需手动写)
Javascript 动态 隐式转换无约束("5"-2=3、true+1=2)
Typescript 静态 允许跨语义隐式转换(如 "5" * 2 隐式转为数字 10),支持宽松相等性检查(0 == "0" 为 true),即使有静态类型检查也不阻止这些弱类型转换行为
http://www.jsqmd.com/news/26079/

相关文章:

  • AI浪潮下的职业迷思:机遇还是泡沫?
  • 10/29
  • [Docker] Docker拉取镜像url详解
  • activemqCVE-2015-5254漏洞复现
  • 模块联邦共享组件的时候如何进行版本管理
  • 查询排序与表连接
  • pyqt 自定义QTableWidget
  • 第二十二天
  • 记录一下我最近一年写的脚本,不知不觉近100个了!
  • The 2025 Hunan Collegiate Programming Contest
  • List of my problems
  • 歌声转换SVC主流方法原理剖析1 — DDSP-SVC
  • SpringBoot整合邮件发送
  • vyos syslog配置
  • Unity3D URP中材质设置emission自发光但是没有辉光Bloom效果
  • Ishibuchi教授与Lie Meng Pang博士受邀于本课题组开展学术交流与指导
  • 【倒计时10天】第20届国际生物启发式计算:理论与应用会议(BIC-TA 2025)将于2025年11月7-9日在武汉召开!
  • [TOOL] hexdump: 二进制文件阅读指南
  • 题解:CodeForces 715E Complete the Permutations
  • [TOOL] hexdump: 二进制文件分析指南
  • Day26-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\Threadcase
  • 题解:CF715E Complete the Permutations
  • 日总结 20
  • 重组蛋白与传统蛋白的区别:从来源到特性的全面解析
  • 交个朋友电商学苑直播运营集训班4.0第三天笔记
  • 网球馆自动预约框架的反调试
  • 吃薯片2025有机 - Gon
  • [TOOL] 个人必备工具
  • JTCatch 缓存部署与使用
  • CSP-S 2025 游记