20080330 - strong-typing and weak-typing

Q: What is strong-typing versus weak-typing Which is preferred, Why

要注意是强类型和弱类型,很多人容易将此与静态语言和动态语言的混淆。静态语言在编译时检查变量类型,动态语言在运行时检查变量类型。但这不是强类型和弱类型的区别。

弱类型语言允许将一块内存看做多种类型。比如直接将整型变量与字符变量相加。C and C++ 是静态语言,也是弱类型语言;Perl and PHP 是动态语言,但也是弱类型语言。

强类型语言在没有强制类型转化前,不允许两种不同类型的变量相互操作。Java、C# 和 Python 等都是强类型语言。

也有许多大型的系统是用动态类型语言编写的,编译器捕获类型错误只能捕获很小比例的错误。加强软件测试才能产出更加可靠的系统,这无关何种类型语言的使用。

尽管如此,使用哪种语言还是要按需而定。个人观点是,编写简单小应用,使用弱类型语言可节省很多代码量,有更高的开发效率。而对于构建大型项目,使用强类型语言可能会比使用弱类型更加规范可靠。

posted on 2008-03-30 23:40  Eric Lee  阅读(503)  评论(0编辑  收藏  举报

导航