Smalltalk Variadic功能

Rom*_*her 5 if-statement smalltalk control-structure variadic-functions pharo

Smalltalk(尤其是Squeak/Pharo)是否具有某种形式的可变函数?

我只是在阅读关于在smalltalk中设计你自己的控制声明的能力,而我是ifTrue的忠实粉丝:ifFalse:我很难想出一个很好的方法来实现任意if if,if else,if else ,...,或其他语句,考虑Variadic函数对实现case语句有多大用处.就像是

假班

ifTrue: aBlock (... elseIf: aBoolean then: aSecondBlock ...) else: aLastBlock

vArgList pairsDo: [:x :y| x ifTrue:[^ (y value)] ].
^ aLastBlock
Run Code Online (Sandbox Code Playgroud)

mat*_*thk 1

您可以使用该#caseOf:otherwise:消息。查找此消息的某个发件人以获取一些示例。

但无论如何,如果你想使用 case 语句,你就不会遵循smalltalk 的做事方式。告诉我们您希望通过案例陈述实现什么目标,以便我们向您展示一些更简洁的方法来实现这一目标。