cool :D On Tue, Mar 16, 2010 at 3:58 PM, Stéphane Ducasse <[email protected]> wrote: > + 1 > > On Mar 15, 2010, at 11:26 PM, Michael Roberts wrote: > >> I would try and reduce the number of branches first. you can use guard >> conditions to exit early. >> >> This is not necessarily exact below, but you hopefully get the idea... >> >> (self currentRow == sortedRows last and: [self currentCell isNil]) >> ifTrue: [^self navigationKey: event] >> >> self currentRow ifNil: [^self]. >> >> self currentCell ifNil: >> [^self setCurrentRowToNext] >> >> self setCurrentCellToNext. >> >> self currentCell ifNil: [^self]. >> >> self currentCell performKeyFocus: event inCellBounds: >> (self pvtGetCellBounds: self currentCell) >> >> >> A different approach entirely is to have an object(s) that represents >> the nil state for the row and cell. That way you are not checking >> constantly for it being nil, and perhaps you can dispatch some >> behaviour to it. >> >> cheers, >> Mike >> >> On Mon, Mar 15, 2010 at 9:49 PM, nullPointer <[email protected]> wrote: >>> >>> Well, perhaps is a theme worked in another times but... is possible for >>> Pharo >>> have a basic Case or elseIf statement? I know is easy create you own >>> structure control, but not is more useful have a "standard" for everybody? >>> I´m tired of write code like that... >>> >>> (self currentRow == sortedRows last and: [ self >>> currentCell isNil ]) ifTrue: >>> [ >>> self navigationKey: event >>> ] >>> ifFalse: >>> [ >>> (self currentRow notNil and: [ self >>> currentCell isNil ]) ifTrue: >>> [ >>> self setCurrentRowToNext. >>> ] >>> ifFalse: >>> [ >>> (self currentRow notNil and: [ self >>> currentCell notNil ]) ifTrue: >>> [ >>> self setCurrentCellToNext. >>> >>> self currentCell notNil >>> ifTrue: >>> [ >>> self currentCell >>> performKeyFocus: event inCellBounds: (self >>> pvtGetCellBounds: self currentCell). >>> ]. >>> ]. >>> ]. >>> ]. >>> >>> >>> Write code with that format is pathetical :( >>> >>> Is valid too have a "and" and "or" lazy? Exists a not lazy with #& and #| , >>> but could exists an #&& and #|| . Is more easy... >>> >>> value1 == value2 and:[ <condition> ] and: [<condition>] ...... >>> >>> or >>> >>> value1 == value2 && <condition> && <condition> ......... ??? >>> >>> Well, perhaps is a stupid question but I miss a more complete way for write >>> code. If in Smalltalk is possible do easy that and include it in "core" why >>> not do it? >>> >>> Is a reasonable desire :) >>> >>> Regards >>> >>> >>> >>> >>> >>> >>> -- >>> View this message in context: >>> http://n4.nabble.com/Case-statement-and-lazy-comparison-in-Pharo-tp1594080p1594080.html >>> Sent from the Pharo Smalltalk mailing list archive at Nabble.com. >>> >>> _______________________________________________ >>> Pharo-project mailing list >>> [email protected] >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> >> _______________________________________________ >> Pharo-project mailing list >> [email protected] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > _______________________________________________ > Pharo-project mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >
_______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
