也说Type Inference

        看了 Cavingdeep兄的 Post,还有 idior老大的comment,我又忍不住想说上两句了,因为Boo总能让我想起可爱的Python,还有正在茁壮成长的小小IronPython。:) 
        说到Type Inference,有一个概念是不得不提的,就是Dynamic Type(动态类型)和Static Type(静态类型)。静态语言就不必多说了,C++、Java和C#都是静态语言,它们最大的特点就是变量在使用之前都必须进行类型声明。而 Python。VB则是一种动态类型语言,所谓动态,通俗点说就是变量的类型是由 最后赋予它的值决定的。怎么决定呢? 就是靠着Type Inference。 例如:

>>>  test  =   " This is string "
>>>  type(test)
< type  ' str ' >

变 量str的值是"This is string",所以str的类型是string(就是'str')。虽然动态语言依靠Type Inference,但是并非使用了Type Inference就一定是动态语言。Cavingdeep兄的post中给出的例子不仅仅说明了Type Inference,更说明了Boo与Python之间一个不同的地方:Boo事实上是一种 静态语言,虽然它不需要为变量进行变量类型的声明。正如Cavingdeep兄给出的例子:

str  =   " string "
str 
=   1    
 
在Boo中会抛出Exception,但是在Python中,这样是没有问题的。 
        Boo与Python最大的一个不同之处就在于此:Boo拥有 静态类型检查。 引用Boo语言之父的一句话以说明之:There were some minor things I didn't like and I also had to account for the needs of a statically typed language such as exact method signature declarations and such.

PS:再次拜读了Boo语言之父Rodrigo所写的 BooManifesto,又一次被他的个性所深深打动。真的忍不住大叫:Wow,太Cool了!<!---->

你可能感兴趣的:(C++,c,python,C#,vb)