也说Type Inference

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

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

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

None.gifstr = "string"
None.gifstr 
= 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了!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值