[squeak-dev] The Inbox: Collections-ct.870.mcz

Levente Uzonyi leves at caesar.elte.hu
Mon Dec 30 14:27:28 UTC 2019


On Mon, 30 Dec 2019, commits at source.squeak.org wrote:

> A new version of Collections was added to project The Inbox:
> http://source.squeak.org/inbox/Collections-ct.870.mcz
>
> ==================== Summary ====================
>
> Name: Collections-ct.870
> Author: ct
> Time: 30 December 2019, 3:01:24.515602 pm
> UUID: cb75296c-0850-d440-97a6-fc1962eef672
> Ancestors: Collections-nice.868
>
> Proposal: Refine Dictionary >> #at:ifPresent: not to require an one-arg block.
>
> Usage example:
> 	Smalltalk at: className ifPresent: [self inform: 'Class already exists'. ^ nil].

That is what Dictionary >> #includesKey: is for:

 	(Smalltalk includesKey: className) ifTrue: [self inform: 'Class already exists'. ^ nil].

Btw, classes should be looked up with #hasClassNamed::

 	(Smalltalk hasClassNamed: className) ifTrue: [self inform: 'Class already exists'. ^ nil].


Levente

>
> =============== Diff against Collections-nice.868 ===============
>
> Item was changed:
>  ----- Method: Dictionary>>at:ifPresent: (in category 'accessing') -----
>  at: key ifPresent: aBlock
>  	"Lookup the given key in the receiver. If it is present, answer the value of evaluating the given block with the value associated with the key. Otherwise, answer nil."
>
>  	| v |
>  	v := self at: key ifAbsent: [^ nil].
> + 	^ aBlock cull: v
> - 	^ aBlock value: v
>  !


More information about the Squeak-dev mailing list