快速业务通道

冒号课堂§5.2:数据类型 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

[6] 但许多强类型语言对于宽转换(widening conversion)还是允许隐性的,如必要时int可自动转换为float。

[7] 典型的类型错误是:一个函数本来期待的参数类型是A,实际传入的变量a却不是A类型。

[8] 比如,静态类型的OOP语言如C++、Java支持downcasting,能在运行期间进一步细化数据类型,从某种意义上也具有动态类型的特征。

。总结

尽管动态语言大多数是动态类型语言,但二者并不是一回事。

数据类型包含两个要素:允许取值的集合和允许参与的运算。

数据类型既有针对机器的物理意义,又有针对人的逻辑意义,提高了代码的安全性和抽象性。

动态类型的类型检查发生在运行期间,静态类型的类型检查发生在编译期间(运行之前)。

动态类型的变量不需要显式声明,静态类型的变量需要通过显式声明或类型推断。

鸭子类型是动态类型的一种风格,允许非继承性多态,即一个对象的类型可以由其接口集合来确定,不需要通过显式继承。它有利于代码重用,但也可能造成误用和滥用。

动态类型语言的优点:代码简明灵活、易于重用,适合泛型编程和快速原型开发。

静态类型语言的优点:运行之前的类型检查增强了代码的可靠性,使编译器有可能进行优化处理从而提高运行效率,节省了运行期的类型检查所占用的时间和空间,同时类型声明有辅助文档的功效。

静态类型检查实行“疑罪从有”的有罪推定制,动态类型检查实行“疑罪从无”的无罪推定制。取舍的原则是:Static Typing Where Possible, Dynamic Typing When Needed。即尽可能守规则,必要时求变通。

类型的动静以类型的绑定时间来划分,类型的强弱以类型的约束强度来划分,它们之间没有必然联系。弱类型语言允许类型的隐性转化,被认为是类型不安全的;而强类型语言则一般不允许这种转化,被认为是类型安全的。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号