2017-02-18 5 views
0

Wie kann ich eine Funktion/Subroutine in AppleScript mit dem Wert einer Variablen aufrufen? Hier ist ein Beispiel dafür, was ich tun will (Stattdessen versucht es „etwas“ Funktion aufrufen)Verwenden Sie den Wert der Variablen für den Aufruf einer Funktion/Subroutine in AppleScript

on HelloWorld() 
    display alert "Hello world." 
end HelloWorld 

set something to "HelloWorld" 

something() 

ich es nennen wollen Hello World (den Variablen-Wert), anstelle der Variablen Namen „etwas“.

Antwort

0

Richtiger Weg, es zu tun, ist den Handler in Script-Objekten zu wickeln und sie in einer durchsuchbaren Liste setzen:

-- define one or more script objects, each with a custom `doIt()` handler 

script HelloWorld 
    to doIt() 
     display alert "Hello world." 
    end doIt 
end script 

script GoodnightSky 
    to doIt() 
     say "Goodnight sky." 
    end doIt 
end script 


-- put all the script objects in a list, and define a handler 
-- for looking up a script object by name 

property _namedObjects : {HelloWorld, GoodnightSky} 

to objectForName(objectName) 
    repeat with objectRef in _namedObjects 
     if objectName is objectRef's name then return objectRef's contents 
    end repeat 
    error "Can't find object." number -1728 from objectName 
end objectForName 


-- look up an object by name and send it a `doIt()` command 

set something to "HelloWorld" 
objectForName(something)'s doIt() -- displays "Hello world" 

set something to "GoodnightSky" 
objectForName(something)'s doIt() -- says "Goodnight sky" 
Verwandte Themen