对于动态语言与静态语言的区分,套用一句流行的话就是:Static typing when possible, dynamic typing when needed。
“动”或“静”,强调的是实施类型的时间,编译里就要确定类型的是静态类型,比如C/C++/JAVA/C#,运行时才实施类型的则是动态类型,比如VB/Python。
而“强”或“弱”刚强调实施类型的强度,强类型的语言,如C++等,变量的类型不可随意转换;而弱类型的语言,变量的类型可以随需要任意转换,而且通常都是隐式的。
静态类型语言是指在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型,某些具有类型推导能力的现代语言可能能够部分减轻这个要求.
动态类型语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。
强类型语言是一旦变量的类型被确定,就不能转化的语言。实际上所谓的貌似转化,都是通过中间变量来达到,原本的变量的类型肯定是没有变化的。
弱类型语言则反之,一个变量的类型是由其应用上下文确定的。比如语言直接支持字符串和整数可以直接用 + 号搞定。当然,在支持运算符重载的强类型语言中也能通过外部实现的方式在形式上做到这一点,不过这个是完全不一样的内涵
通常的说,java/python都算是强类型的,而VB/Perl/C都是弱类型的.
不过相比于动态/静态语言的分类,强类型/弱类型更多的是一个相对的概念
分享到:
相关推荐
### Python学习中关于动态类型、静态类型、强类型与弱类型的问题 #### 动态类型与静态类型 在计算机编程领域,动态类型和静态类型是两种重要的类型系统分类方式。 **动态类型**(Dynamic Typing)指的是在程序...
总结来说,动态语言和静态语言主要区别在于类型检查的时间点,而强类型和弱类型关注的是类型转换的规则。动态类型语言与静态类型语言各有优劣,动态语言更灵活,适合快速迭代的开发;静态类型语言则提供了更好的编译...
弱类型、强类型、动态类型、静态类型语言的区别是什么
- **Python**:虽然 Python 在表面上看起来是弱类型语言,因为它支持动态类型,但实际上在操作不同类型的数据时仍然需要遵循严格的规则,因此被视为强类型语言。 ### Java 中 WeakHashMap 的使用及特性 #### 五、...
编程语言可以按照类型系统的不同特点分为静态类型语言和动态类型语言,同时还可以根据类型检查的严格程度来区分强类型语言和弱类型语言。了解这些概念对于编程语言设计、选择以及代码实现有着重要的意义。 首先,...
PYTHON是一门动态解释性的强类型定义语言:编写时无需定义变量类型;运行时变量类型强制固定;无需编译,在解释器环境直接运行。 动态和静态 静态语言:是指在编译时变量的数据类型即可确定的语言,多数静态类型语言...
c和c++是静态语言,也是弱类型语言,perl和php是动态语言,但也是弱类型语言,强类型语言在没有强制类型转换前,不允许两种不同类型的变量相互操作。java、c#和python都是强类型语言。 使用那种语言还是要按需而定。...
背景强类型与弱类型js 动态弱类型语言。TypeScript 不是强类型!只是静态类型!快速入门 TypeScriptnpm install -g typesc
| Java | 强类型 | 静态检验类型 | 否 | 是 | 是 | 否 | | .NET | 强类型 | 静态 | 否 | 是 | 是 | 否 | | Ruby | 强类型 | 动态解释执行 | 否 | 是 | 否 | 否 | | JavaScript | 强类型 | 动态 | 是 | 否 | 否 | 否 ...
尽管Python具有动态类型的特性,但它也是一种强类型语言。这意味着在执行操作时,需要确保操作数的类型兼容。例如,尝试将整数与字符串相加将导致`TypeError`异常: ```python i = 10 j = 'ss' print(i + j) # ...
根据描述,编程语言可分为强类型与弱类型语言,静态类型与动态类型语言。强类型语言对变量的数据类型有严格要求,在编译时会进行类型检查。而弱类型语言则对类型检查相对宽松,变量的数据类型可以在运行时改变。静态...
# javascript:是一门动态的弱类型语言,运行时识别数据类型 字符串(str) # 单引号和双引号 temp = 'hello python' temp = "hello python" print(temp) # 转义符处理 temp="I say \"hello world\...
(4)编辑语言:编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言 (5)Python种类: 二、Python入门: 1、变量 2、常量:长时间不发生变化 3、注释:解释说明,被注释的内容不会被执行 4、基础...
论文可能会讨论强类型和弱类型: 1. 强类型:不允许隐式类型转换,必须显式进行,如Java。这种类型系统更安全,但可能需要更多的代码来处理类型转换。 2. 弱类型:允许隐式类型转换,可能带来意外的行为,如...
强类型语言和弱类型语言的区别在于对类型强制转换的限制,强类型语言通常不允许隐式类型转换,从而避免了潜在的问题。 语义学是理解编程语言行为的基础,在HWA3中,学生将学习词法语义、静态语义和动态语义。词法...
Python是一种解释型、面向对象的编程语言,这意味...总之,Python作为一门动态解释性的强类型定义语言,结合了动态类型语言的灵活性和强类型语言的严谨性,是初学者和专业人士理想的选择,尤其适合快速开发和原型验证。
强类型和弱类型是根据语言对类型约束的严格程度来区分的。在强类型语言中,如Java,函数的参数类型必须与声明的类型一致,否则会导致编译错误。而JavaScript则属于弱类型语言,它允许不同类型的值之间进行隐式转换,...