语言的类型

强类型与弱类型(类型安全)

强类型与弱类型是判断类型安全的一个标准,区别在于是否允许有任意的隐式类型转换。强类型有更强的类型约束,而弱类型中几乎没有什么约束。

隐式转换:

1、执行算术运算时,低类型(短字节)可以转换为高类型(长字节);例如: int型转换成double型,char型转换成int型等等;

2、赋值表达式中,等号右边表达式的值的类型自动隐式地转换为左边变量的类型,并赋值给它;

3、函数调用时,将实参的值传递给形参,系统首先会自动隐式地把实参的值的类型转换为形参的类型,然后再赋值给形参;

4、函数有返回值时,系统首先会自动隐式地将返回表达式的值的类型转换为函数的返回类型,然后再赋值给调用函数返回。

强类型:语言层面限制函数的实参必须与形参类型相同,不允许有任意的隐式类型转换。

弱类型:语言层面不会限制实参的类型(语法上无错,即在编译时不会出错),允许任意的隐式类型转换。

弱类型语言问题:

1.类型异常的问题要等到运行时才可以发现。

2. 类型不明确可能会造成函数功能不明确。

强类型语言优势:

1. 错误暴露得更早

2.  代码更智能,编码更准确

3.重构更牢靠

4. 减少不必要的类型判断

静态类型和动态类型(类型检查)

静态类型和动态类型是类型检查的一个标准,区别在于声明过后类型是否允许修改。

静态类型:一个变量声明时它的类型就是明确的,且声明过后类型不允许修改。

动态类型:只有在运行阶段才能够明确变量类型,且变量类型可以随时变化,也就是说动态类型的变量没有类型,变量中存放的值是有类型的。

解释型语言和编译型语言 (编译方式)

解释型语言:一边执行,一边编译,需要哪些源代码就转换哪些源代码,不会生成可执行程序。

编译型语言:将源码一次性编译成可执行的二进制文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值