Smalltalk 块和ifTrue语句

Smalltalk 块和ifTrue语句,smalltalk,squeak,Smalltalk,Squeak,我想创建一个方法,该方法获取一个块作为参数,该块也获取一个参数。 如果该块返回true,它应该执行某些操作(例如返回1),如果返回false,它应该执行其他操作 我就是这么做的。。但我在ifTrue上遇到语法错误。。。 这就是我应该得到一个接收参数的块作为参数的方式吗 Mymethod: Block Block value: 'argument' ifTrue: [ ^1]. ifFalse: [^2]. 以及对该方法的调用: object := myClass new. argument

我想创建一个方法,该方法获取一个块作为参数,该块也获取一个参数。 如果该块返回true,它应该执行某些操作(例如返回1),如果返回false,它应该执行其他操作

我就是这么做的。。但我在ifTrue上遇到语法错误。。。 这就是我应该得到一个接收参数的块作为参数的方式吗

Mymethod: Block

Block value: 'argument'
ifTrue: [ ^1]. 
ifFalse: [^2].
以及对该方法的调用:

object := myClass new.
argument :=1
boolValue := object Mymethod : [:argument | argument ==1 ]

您编写它的方式意味着将
#value:ifTrue:
消息发送到块,然后将
#ifFalse:
消息发送到空(这是完全不可能的。如果您想在一行中执行此操作,应使用括号:

(Block value: 'argument')
  ifTrue: [ ^1]
  ifFalse: [^2]

同样在smalltalk中,使用未大写的变量命名也是一种惯例,比如
block
aBlock
您编写的方式意味着
\value:ifTrue:
消息发送到块,然后将
\ifFalse:
消息发送到空(这根本不可能。如果要在一行中完成,应使用括号:

(Block value: 'argument')
  ifTrue: [ ^1]
  ifFalse: [^2]

同样在smalltalk中,使用未大写的变量命名也是一种惯例,比如
block
aBlock

是否有实际的人使用这种语言?@Shiran,同样,我在使用,这是一个分支。你可以在这里读到成功的故事:很好..不冒犯任何人..比较起来感觉很不自然对于java或C++。@ Shiran。可以说:C++是为CPU编写一个场景,告诉它在这个或那个例子中该怎么做。SimultTalk是关于对象的社区的建模,它可以互相交谈,可以一起解决一些问题。听起来很奇怪,但是你想到的模型会产生很大的影响。@ Shiran,不,我不知道。ed提供了更多信息,但如果您想讨论更多内容,您可以通过向pharo用户邮件列表发送电子邮件或使用IRC联系pharo社区。联系人可在此处找到:是否有actullu人员使用此语言?@Shiran,同样,我正在与之合作,这是一个分支。您可以在此处阅读有关成功故事的信息:很好..不要走开和java或C++相比,C++是很好的。用隐喻来说明:C++就像为CPU编写一个场景,告诉它在这个或那个例子中该怎么做。SimultTalk是关于对象的社区的建模,它可以互相交谈,可以一起解决一些问题。听起来很奇怪,但是模型Y。“你的想法会产生巨大影响。@Shiran不,我需要更多信息,但如果你想讨论更多,你可以通过向pharo用户邮件列表或使用IRC发送电子邮件与pharo社区联系。联系人可在此处找到: