Name
get...as — coercion by target
Syntax
[get]attributeasclass
Example
tell application "Finder"
folder 1 as string
end tellAn 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 stringThat 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 tellThe target is the Finder and the
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access