ifEmpty的状态:ifNotEmpty:,ifNil:ifNotNil:和Smalltalks之间的相关消息?

and*_*rew 5 smalltalk squeak pharo

什么是ifEmpty的消息的当前状态:ifNotEmpty:,ifEmpty:,ifNotEmpty:ifNil:ifNotNil:,ifNil:和ifNotNil:?

它们是否可用于Smalltalks,它们的行为是否一致?在旧代码中,您仍会看到"object isEmpty ifTrue:[...] ifFalse:[...]"之类的内容.

Tob*_*ias 6

目前,我认为Seaside编码会议很好地涵盖了最先进的技术:

可移植性

[...]

不要使用任何这些方法,它们在某些平台上缺失,损坏或具有不同的语义:

[...]

  • 对象:#ifNotNil:,#ifNotNilDo:,#in:,...
  • 布尔:#and:and:and:,#or:or:or:,...
  • 收藏:#=,#pairsDo:,#with:collect:
  • 串: #match:
  • 流:#position,#position:,#isEmpty

[...]

(真实地突出你的)

由于Seaside已移植到Pharo,Squeak,GemStone,Dolphin,VisualWorks,VA Smalltalk,GNU Smalltalk,我认为此列表具有一定的权威性.

另请注意,#isEmpty至少对Streams来说,即使看起来也不便携.