8.11. Specifying Patterns for Parameters

The last topic in this chapter illustrates the idea of specifying patterns for the parameters to your handlers. A pattern can be a list, a record, or even a more complicated combination of the two. For example, suppose you want to define a handler called makeDate that takes a list of three integer items representing the month, day, and year, respectively. You also want to return a date object for that specified date. Here's one way to do it:

on makeDate(D)
    set theMonth to item 1 of D as string
    set theDay to item 2 of D as string
    set theYear to item 3 of D as string
    return date  (theMonth & "/" & theDay & "/" & theYear)
end makeDate

A call to this handler might appear like so:

makeDate({7, 16, 2005})

The handler extracts each item from the list, converting each to a string in the process. A string of the form mm/dd/yyyy is then created, converted to a date, and returned.

If you were writing this handler for use in your programs, you would probably want to make sure that each of the integers passed to the handler is in the proper range.

Of course, your handler could have been written to take three separate integer arguments, but here you decide to have it take a list instead (otherwise, you would defeat the purpose of this example!).

You can tell AppleScript that the handler is expecting a three-item list as its argument by specifying a three-item list as the parameter when the handler is defined. It's done like this:

on makeDate({MM, DD, ...

Get Beginning AppleScript® 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.