Subroutines with Labeled Parameters
These
subroutine types are a slightly different animal than the subroutines
with positional parameters, but they have some of the same rules. The
keywords on
or to
are required
in the labeled-subroutine definition, followed by the name of the
subroutine, and optionally a nonlabeled parameter called a
direct parameter. If the subroutine has a direct
parameter (it does not have to), then the subroutine name has to be
followed by the keyword of
or
in
:
On Square of intOne...
Subroutines with labeled parameters are unwieldy to design compared with subroutines with positional parameters, but they make more subroutine calls resembling human language possible. The two different types of AppleScript subroutine designs are also a matter of personal taste, I suppose. Example 8-5 shows a labeled subroutine definition.
on Square of intOne above intLimit given Intclass:theClass if (intOne > intLimit) and (theClass is integer) then return intOne ^ 2 else return 0 end if end Square Square of myint above 0 given Intclass:(class of myint)
Example 8-6 redesigns the preceding subroutine using positional parameters instead.
on Square(intOne,intLimit,theClass) if (intLimit > 0) and (theClass is integer) then return intOne ^ 2 else return 0 end if end Square
The rules on naming the subroutine (using local and global variables) and ending the subroutine definition ...
Get AppleScript in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.