什么是类型安全?

“类型安全”是什么意思?



MM们
浏览 1150回答 3
3回答

江户川乱折腾

类型安全不应与静态/动态类型或强/弱类型混淆。类型安全的语言是一种只能对数据执行的操作是数据类型所允许的操作。也就是说,如果您的数据属于类型X并且X不支持操作y,那么该语言将不允许您执行y(X)。这个定义并不设置规则时,这个被选中。它可以在编译时(静态类型)或在运行时(动态类型),通常通过异常。两者可能有点:某些静态类型化语言允许您将数据从一种类型转换为另一种类型,并且必须在运行时检查转换的有效性(假设您尝试Object将a转换Consumer为a-编译器没有知道是否可以接受的方式)。类型安全性也不一定意味着强类型化-众所周知,某些语言的弱类型性很强,但仍然可以说是类型安全的。以Javascript为例:它的类型系统虽然很弱,但仍然严格定义。它允许在正确定义的规则内自动转换数据(例如,将字符串转换为整数)。据我所知,没有一种情况会导致Javascript程序以未定义的方式运行,并且如果您足够聪明(我不是),您应该能够预测阅读Javascript代码时会发生什么。类型不安全的编程语言的一个示例是C:根据规范,在数组范围之外读取/写入数组值具有未定义的行为。无法预测会发生什么。C是具有类型系统但不是类型安全的语言。
打开App,查看更多内容
随时随地看视频慕课网APP