弱类型、强类型、动态类型、静态类型语言是什么?

本文介绍了编程语言的四种主要类型系统:弱类型、强类型、动态类型和静态类型。弱类型语言允许隐式类型转换,如JavaScript;强类型语言如Java则不容忍隐式转换;动态类型语言如Python在运行时检查类型;而静态类型语言如C#要求在编译时声明变量类型。了解这些概念有助于选择和理解不同编程语言的特点。
摘要由CSDN通过智能技术生成


一、弱类型语言?

weakly typed:偏向于容忍隐式类型转换。

> "1"+2
'12

二、强类型语言?

strongly typed:偏向于不容忍隐式类型转换。

>>> "1"+2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects

三、动态型语言?

dynamiclly:在运行期进行类型检查的语言,也就是在编写代码的时候可以不指定变量的数据类型。

>>> a = 1
>>> type(a)
<type 'int'>
>>> a = "s"
>>> type(a)
<type 'str'>

四、静态类型语言?

statically:它的数据类型是在编译期进行检查的,也就是说变量在使用前要声明变量的数据类型,这样的好处是把类型检查放在编译期,提前检查可能出现的类型错误。

Prelude> let a = "123" :: Int
<interactive>:2:9:
    Couldn't match expected type `Int' with actual type `[Char]'
    In the expression: "123" :: Int
    In an equation for `a': a = "123" :: Int

总结

无类型: 汇编
弱类型、静态类型 : C/C++
弱类型、动态类型检查: Perl/PHP
强类型、静态类型检查 :Java/C#
强类型、动态类型检查 :Python, Scheme
静态显式类型 :Java/C
静态隐式类型 :Ocaml, Haskell
Alt

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值