C语言,C#,Java,JavaScript之强类型与弱类型
奇葩的我今天想到一个坑爹的问题,都说Java是强类型的语言,JavaScript是弱类型的语言。
嗯嗯,那初学时候的C语言呢?
呵呵哒,突然觉得短路了。说Java是强类型的语言是因为遇到这样的情况:
int a=1; if(a){ }
这样写肯定报错在JAVA中,它会提示要boolean型。C#一样的,C#跟Java是同个妈生的!90%覆盖
嗯嗯,继续下面的讨论,JS是弱类型的在我以前的印象是这样的:
var a=1; if(a){ }
然后突然发现(想起),在C语言中:
int a=1; if(a){ }
凌乱了,自己的坑爹想法真是奇葩,估计这个问题没有人想起吧?
然后自行百度:C语言是强类型还是弱类型?
网上说法不一。在此不枚举!
有大大说:强类型是指给定变量后类型不能转化,那C语言的int转char那些什么鬼呢?
个人理解:强类型是对编码的规范化而定制的标准,有利于程序员养成良好的变成习惯。而弱类型则对这方面没有严格要求。所以,去TMD强类型弱类型。能编出好程序才是好类型!
编程语言专家 Benjamin C. Pierce,Types and Programming Languages》和《Advanced Types and Programming Languages》的作者,曾说:我花了几个星期…试着弄清楚“強类型”、“静态类型”、“安全”等术语,但我发现这异常的困难…这些术语的用法不尽相同,所以也就近乎无用。