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

时间:2014-01-11 19:56:32

标签: smalltalk pharo squeak

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

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

1 个答案:

答案 0 :(得分:6)

目前,我认为Seaside coding convetions

涵盖了最先进的技术水平
  

可移植性

     

[...]

     

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

     

[...]

     
      
  • 对象: #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来说。