+ 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
