08-动态类型与静态类型

1, 什么是动态类型和静态类型

1) 动态语言

又叫动态编程语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如众所周知的ECMAScript(JavaScript)便是一个动态语言。除此之外如Ruby、Python等也都属于动态语言,而C、C++等语言则不属于动态语言。

而其实我们平时说的“动态语言”应该指的是“动态类型语言”。至少我之前一直是这么认为的。

2) 动态类型语言

在运行时确定类型的语言。

即编译时与类型无关。一般在变量使用之前不需要声明变量类型,而变量的类型通常是由被赋的值的类型决定。 如php、Python和Ruby。

3) 静态类性语言

与动态类型语言正好相反,在编译时,便需要确定类型的语言。即写程序时需要明确声明变量类型。如C/C++、Java、C#等。

对于动态语言与静态语言的区分,套用一句流行的话就是:Statictyping when possible, dynamic typing when needed。

4) 强类型语言

强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。

强类型定义语言是类型安全的语言。

5) 弱类型定义语言

数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/wahy/p/4817237.html

O-C相关-08-动态类型与静态类型相关推荐

  1. C++动态类型与静态类型

    静态类型 编译时的类型,运行前就确定了,是变量声明时的类型或表达式生成的类型 动态类型 运行时才确定的类型,是变量或表达式表示的内存中的对象的类型 Quote* p = new b_Quote; // ...

  2. 动态语言,静态类型,强类型定义语言,弱类型定义语言,

    1 动态语言和静态语言 通常我们所说的动态语言.静态语言是指动态类型语言和静态类型语言.    1 动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时 ...

  3. java 强类型 弱类型_强类型,弱类型,静态类型,动态类型的区别

    强.弱类型 强类型strongly typed: 如果一种语言的所有程序都是well behaved--即不可能出现forbidden behaviors,则该语言为strongly typed. 弱 ...

  4. 编程语言分类 -- 强类型与弱类型、动态类型与静态类型

    文章内容输出来源:拉勾教育 大前端高薪训练营 前言 在拉勾教育大前端高薪训练营学习的过程中,了解到编程语言除了以前常说的高级语言与低级语言之分,还可以根据类型安全分为强类型语言与弱类型语言,也可以根据 ...

  5. 计算机语言的分类:编译型/解释型、动态类型/静态类型、强类型/弱类型

    参考: 计算机语言:编译型/解释型.动态语言/静态语言.强类型语言/弱类型语言 编译型语言.解释型语言.静态类型语言.动态类型语言概念与区别 编程语言傻傻分不清:弱类型.强类型.动态类型.静态类型 1 ...

  6. 什么是动态语言和静态语言?静态语言动态语言的区别

    定义  通常我们所说的动态语言.静态语言指 动态类型语言(Dynamically Typed Language)和 静态类型语言Statically Typed Language). 还有一个 Dyn ...

  7. 什么是动态语言和静态语言?

    什么是动态语言和静态语言? 定义 通常我们所说的动态语言.静态语言指 动态类型语言(Dynamically Typed Language)和 静态类型语言Statically Typed Langua ...

  8. Ruby 3 有望引入静态类型

    开发四年只会写业务代码,分布式高并发都不会还做程序员? >>>   在昨日举办的 RubyKaigi 2019 大会上,知名 Ruby 开发者 Paul Tarjan 发表了名为&q ...

  9. python mypy类型检查_Python 类型检查指南

    Python 作为一种动态语言,在 PEP484(3.5) 才支持 Type Hints,且类型申明是 optional 的,对于从静态语言(比如:Java,国内大学专业cs or se的教学语言也是 ...

最新文章

  1. Linux学习 Unit 12
  2. 改善C#程序的建议5:引用类型赋值为null与加速垃圾回收
  3. xs_run加密还原
  4. C++Postfix Expression 后缀表达式的评估算法(附完整源码)
  5. Ribbon-负载均衡原理
  6. android圆形头像 demo,Android图像处理之绘制圆形头像
  7. 如何使用router-link对象方式传递参数?
  8. python时间复杂度和空间复杂度是指_时间复杂度和空间复杂度
  9. C++构造函数的各种用法全面解析(C++初学面向对象编程)
  10. 漫谈云计算与OpenStack的前世今生
  11. NLPCC 2021 Final Call For Papers
  12. 微信小程序中媒体api总结
  13. Android性能专项测试之Systrace工具
  14. 全图范围设置(转自Esri中国社区)
  15. 问题解决: Google企业邮箱收不到Postfix发的邮件
  16. python实现21根火柴游戏
  17. 控件库中的Botton控件简述
  18. android 上层设置 自动调节亮度
  19. 递归展示树状图/树状表格
  20. 【练习题】第二章--变量,表达式,语句(Think Python)

热门文章

  1. 读书印记 - 《混乱:如何成为失控时代的掌控者》
  2. 通过cmd命令,杀掉占用端口号的进程
  3. hdu 2196 computer
  4. 《一线架构师实践指南》—— 读后总结
  5. windows server 2012服务器IIS基本配置
  6. 移动端开发的知识系统介绍
  7. 【转】电脑GPS导航软件下载,教你把笔记本做成GPS
  8. 【mysql分区分表】mysql 按时间分区 【partition】
  9. Vmware centos无法连接网络
  10. vue.js框架:数组的各种变异方法