Allowed coercionstring, if the data type of each item in the list can legally be coerced to a string
Syntaxset theList to {"Mercury","Mars",pi,3.14} as list DescriptionAn AppleScript list is close to what other languages such as Perl or Java would call an array. In AppleScript, you can store items of any data type in a list, even other lists. You can mix data types among list items (store strings, numbers, and other objects in the same list). The items as a group are surrounded by curly braces and separated by commas. For example: set theList to {"Mercury","Mars",pi,3.14} includes two strings, the pi predefined variable (which AppleScript will evaluate to about 3.14159265359), and a real number. A list is a data type that you will encounter often in AppleScript. Several AppleScript commands return lists, such as getting every item in a container (e.g., get every folder of desktop) You can use the following properties with a list:
class of theList
length of theList
ExamplesYou can use several different reference styles to grab individual items from a list, such as the first, last, or middle reference methods (e.g., first item of theList—Mercury). You can use integers as reference methods, such as: 1000th item of theList (if the list included at least 1000 items). You can also access subgroups within a list by referring to them as a range. For example: items 1 thru 3 of theList returns a list containing the first, second, and third entries in the theList variable. You can refer to any list value by referencing its list position, as in item 3 of theList. Lists are not "zero indexed" by default in AppleScript. The first position in an AppleScript list is occupied by item 1. AppleScript lists are very supple; you can "concatenate" two lists to make a bigger single list. The following code uses the concatenation operator (&) to combine two lists: set theList to {"Mercury", "Mars", pi, 3.14} as list set secondList to {"Neptune", 2000, "NutShell"} set comList to theList & secondList -- results in {"Mercury", "Mars", 3.14159265359, 3.14, "Neptune", 2000, "NutShell"} If you concatenate a list data type with a string, integer, real, or boolean data type, AppleScript adds the value to the end of the original list. For instance: set theList to theList & "Let me in" results in a new list with the "Let me in" string added to the end of it. This makes it very simple to dynamically add data to an existing list, whether the data are other lists, strings, numbers, or different classes. You get a different result when you try to concatenate a list of values to a string. AppleScript first coerces theList to a string. All of the list items are jammed together and separated by AppleScript's default text item delimiters, which is the empty string (""). Thus when list items are converted to a string the result is often unreadable—a string of characters with no spaces separating them. This example is one solution to prettying up a string that was formerly a list: (* save a reference to AppleScript's default text item delimiter, which is an empty string, "" *) set defaultDelim to text item delimiters set text item delimiters to return tell application "Finder" set folList to (name of (items of desktop whose kind is "folder"))¬ as list set folList to folList as string end tell set text item delimiters to defaultDelim display dialog folList The best solution to coercing a list to a string is to temporarily change AppleScript's text item delimiters. The prior example first saves the default text item delimiters in a variable, so we can return AppleScript to its default string behavior after the script runs. Then the text item delimiters value is changed to the return predefined variable, which, when used in this manner, is a return character (displaying the string following it on the next line). The script then tells the Finder to get a list of all the names of the desktop's folders and coerce the list to a string. Since I changed the text item delimiters to a return character, this will create a string that lists each folder name on a separate line. This string, or at least a portion of it (depending on how cluttered the desktop is with folders), is displayed to the user using the display dialog scripting addition. Finally, the script also resets the text item delimiters to the AppleScript default (an empty string, ""). |