b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

smalltalk语言 异常?smalltalk 编程?Smalltalk为什么让我爱不释手?(2)

电脑杂谈  发布时间:2016-08-09 01:00:01  来源:网络整理

不错,就这些,我要说的就这些。我们看到了,smalltalk里没有循环,它有整数类,这个类里实现了timesRepeat:消息,可以用来把事情重复执行N次。像这样用于循环操作的方法到处都是。

你会问,有没有if这个关键字?Smalltalk里肯定有一个if关键字,不是吗?不,没有。你所谓的if语法在smalltalk里可以用你刚才看到的类和消息传递的机制实现。为了好玩,我们来实现一个。

我们从创建一个PBoolean类开始,然后两个继承它的类——PTrue 和 PFalse。

Object subclass: #PBoolean

我们之前创建了一个类,MyClass,我们要给它定义一个equals:方法,它能返回true和false,也就是我们的PTrue 和 PFalse。

  • equals:other
  • ^PTruenew
  • 这个小帽子,^,是返回的意思。我写的是硬编码让它返回true。现在我们可以在程序来用它了:

    得到的是true。我们已经接近目标了,但还不是if。if应该是个什么样子?它的样子应该是这样:

    估计你在想,怎么才能实现这样的效果。我在PTrue里加入了一个方法:

  • ifTrue:doelse:notdo
  • ^dovalue
  • 这个方法看上去是接受2个参数,但执行时接受第一个,忽略第二个。对于PFalse,正好相反:

  • ifTrue:notdoelse:do
  • ^dovalue
  • 这就可以了。一个可以用的if!如果让我说,我觉得这真的很神奇。如果你去检查Squeak了的代码,你会发现它里面的if就是这样实现的:

    True's ifTrue:ifFalse:

    如果你使用的编程语言能允许你创建像if条件这样的基本功能,那它就可以让你创建任何你想要的东西。

    原文:#more-2494

    【编辑推荐】

    【责任编辑:陈贻新 TEL:(010)68476606】


    原文:smalltalk为什么让我爱不释手? 返回开发首页

    以上就是关于smalltalk的全部内容,相信你一定会非常满意。


    本文来自电脑杂谈,转载请注明本文网址:
    http://www.pc-fly.com/a/tongxinshuyu/article-14248-2.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 泰定帝也孙铁木儿
        泰定帝也孙铁木儿

        既然美国不承认十二海里只承认三海里拍几艘核潜艇到美国三海里以外溜达溜达看看美国什么反应

      热点图片
      拼命载入中...