Name

get...as — coercion by target

Syntax

[get] attribute as class
                  

Example

tell application "Finder"
        folder 1 as string
end tell

An application may be willing to perform coercions of which AppleScript itself would be incapable. The preceding example demonstrates this. AppleScript itself can’t coerce a folder to a string. It doesn’t even know what a folder is. This is a request targeted entirely at the Finder, and it says: “Get folder 1, but please return a string as the result.” It happens that the Finder has a way to do this, so it complies with this request—it returns the pathname of the folder.

You can be using the get...as command without realizing it if you become confused about who the target is. For example:

tell application "Finder"
        set f to folder 1
end tell
f as string

That looks like it shouldn’t work. Having retrieved folder 1, we are no longer talking to the Finder. So when we try to coerce this folder to a string, we will be talking to AppleScript, and AppleScript won’t know how to do it. Right? Wrong. The variable f isn’t just a folder; it’s a reference to a folder, a folder belonging to the Finder. (If this isn’t clear to you, you should reread Chapter 11.)

tell application "Finder"
        set f to folder 1
end tell
f -- folder "myFolder" of desktop of application "Finder"

Therefore it’s a complete and valid target. So when you say:

f as string

you’re actually saying:

tell application "Finder"
        get (folder "myFolder" of desktop) as string
end tell

The target is the Finder and the

Get AppleScript: The Definitive Guide 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.