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

smalltalk_smalltalk读音_smalltalk语言(5)

电脑杂谈  发布时间:2017-01-25 17:45:41  来源:网络整理

|kermit skooter piggy henrietta| 

声明了四个临时变量。这里还有叫做 Smalltalk 的一个变量,持有到所有声明的全局变量的引用并且我们使用 at:put: 消息来输入新项目。

Smalltalk at: #Kermit    put: Frog new.
Smalltalk at: #Piggy     put: Pig new.
Smalltalk at: #Henrietta put: Chicken new.
Smalltalk at: #Skooter   put: Mongrel new.

如果没有别的要求所有变量都被初始化为 nil。使用 := 符号来把名字绑定到对象。

|fozzie|  fozzie := Bear new.

建立类 Bear 的一个新实例并把它邦定到“fozzie”,此后我们可以接着向它发送消息直到它过期。

消息表达式是发送到对象的消息的一个序列,由句点分隔。消息名字应该指示想要得动作的类型。它们由选择子和随后的各自的消息组成,如果有的话。一元消息不要求参数,而二元参数以常见的中缀表示法写成。所有其他种类的消息使用到关键字来命名参数。

"到一个类的一元消息: 'new' 返回类 CookieMonster 的新建立的实例" 
CookieMonster new.
 "到一个实例的二元消息: '+' 返回类 integer 的一个实例(总和)"  7 + 7.
  "到一个实例的关键字消息: 'give:to:' 提示 Skooter 去
 进行一个殷勤的举动" 
Skooter give: #flowers to: Henrietta 

消息可以是嵌套的,在这种情况下适用一些简单规则: 分析次序是从左至右,优先级是: 一元 -> 二元 -> 关键字消息;在需要消除序列的歧义的地方必须使用圆括号。作为简写,发送到相同接收者的消息可以使用分号来“级联”,这样

fozzie center; show; dance 

将初始化到 fozzie的消息的一个序列;就是说,首先导致它使它自身进入屏幕,向观众显示自己,并尝试一些娱乐表演。

所有的 Smalltalk 的数据结构都表示为对象,并且在它的类库中可大量获得。

对象(Object)是 Smalltalk的继承层次的根,提供对所有对象的一些基本功能。类搜集(Collection)是对象的众多子类之一,并且它自己可以被进一步指定为一套完整系列的数据结构。集合(Set)只是其中之一,有字典(Dictionary)作为它的子类。使用字典来存储成对的对象之间的关联。下面的代码在一个简单的例子中展示了这些数据结构的使用。首先定义了一个字典,把一些老朋友与一组美德关联在一起。接着发送消息到这些对象,列出和查找键。

Smalltalk贡献了面向对象的完全解释,即使是控制结构都被实现为消息模式。通过 ifTrue:、ifFalse: 和 ifFalse:ifTrue: 消息支持选择执行的待选路径。用 whileTrue:、whileFalse:、 timesRepeat:、do:、to:do:、collect: 或递归来指定循环。Smalltalk使用块的概念来推迟计算。块可以接受参数,可以有临时变量,并被用来封装以后可能执行的代码。此外它们还常用作给控制结构的参数。因为块自身是对象,它们可以绑定到标识符上。value 消息强制一个块的执行。

上面的工作空间展示了平常如何使用块的两个例子。第一种情况是,在一个循环内部流动于一定范围的数上作一个简单的测试。如果一个数是偶数,在记录簿中显示‘EVEN’,如果是奇数,则打印‘ODD'。这里我们限制我们的计数为三,所以将测试0、1 和 2。可以使用 whileTrue: 和 if..:消息的组合来完成这个任务。要注意的事情是,在 whileTrue:结构的情况下接收者和参数都必须是块,而在 ifTrue: 和 ifFalse:的情况下只有参数必须是块。第二个例子处理符号的一个列表。首先构造描述适当动作的块并命名为“canon”。这里要注意的是使用分号来前缀两个块参数的名字,用竖线来把他们与块体分隔开。任何临时变量,如果需要的话,将跟随在此后。这个块现在可以按需要执行多次,给出不同的值作为参数。在我们的例子中 value:value: 消息强制执行可疑品质(dubious quality)的三声合唱。


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

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

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