Name
get...as — coercion by target
Syntax
[get]attribute
asclass
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.