elegant code tip

Rob Cozens rcozens at pon.net
Tue Dec 31 11:00:01 EST 2002

Hi Doug,

>to easily allow a boolean argument to be omitted, study this example:
>function searchMyList myList,toFind,matchWholeFlag
>   -- allow matchWholeFlag to be omitted (false)
>   set the wholeMatches to (matchWholeFlag = true)
>   return lineOffset(toFind,myList)
>end function

If you want it to fail when matchWholeFlag is empty, substitute:

"if matchWholeFlag then set wholeMatches to true else set 
wholdMatches to false"

   (should give "expected true or false" error)

If you want something more graceful, add

"if matchWholeFlag is empty then
    answer "Missing parameter"
    exit searchMyList
end if"

or (set a default)

"if matchWholeFlag is empty then put true into matchWholeFlag"

If you're just pointing out that appropriately-written handlers can 
deal with missing parameters, absolutely.  Many Serendipity Library 
handlers have one or more parameters that are never passed unless the 
caller wishes to override the default.  For example, the calling 
syntax for justifyString is:

	function justifyString theString,theLength,whichWay,padChar

whichWay defaults to "right" if empty; padChar defaults to space; so 
if the string is to be right-justified and the pad character is 
space, only the first two arguments must be passed.

The getSDBRecord command has six arguments.  Only the first argument 
is required.

Rob Cozens
CCW, Serendipity Software Company

"And I, which was two fooles, do so grow three;
Who are a little wise, the best fooles bee."

from "The Triple Foole" by John Donne (1572-1631)

More information about the Use-livecode mailing list