• 动态语言和静态语言 | 强类型语言和弱类型语言


    1 动态语言和静态语言
      通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。
       1 动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。
       2 静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。
    对于动态语言与静态语言的区分,套用一句流行的话就是:Static typing when possible, dynamic typing when needed。


    2 强类型定义语言和弱类型定义语言
      1 强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。
     
     2 弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。
    强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!
        例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。




    强类型语言是指需要进行变量/对象类型声明的语言,一般情况下需要编译执行。例如C/C++/Java/C#


    弱类型语言是指不需要进行变量/对象类型声明的语言,一般情况下不需要编译(但也有编译型的)。例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等


    总结 : python 动态语言,强类型语言
            shell  动态语言,弱类型语言
            C/C++  静态语言,强类型语言





  • 相关阅读:
    前端下载图片到本地
    小程序复制文本
    小程序的分享
    vue简单的父子组件之间传值
    git新的远程分支同步到本地
    C#使用RabbitMq队列(Sample,Work,Fanout,Direct等模式的简单使用)
    别再眼高手低了! 这些Linq方法都清楚地掌握了吗?
    Asp.NetCore 3.1 使用AutoMapper自动映射转换实体 DTO,Data2ViewModel
    .NetCore使用Redis,StackExchange.Redis队列,发布与订阅,分布式锁的简单使用
    core的 Linq基本使用,简单模拟数据库多表的左右内连接的测试
  • 原文地址:https://www.cnblogs.com/robbychan/p/3786926.html
Copyright © 2020-2023  润新知