2012-12-25 62 views
3

由於熟悉編程,我缺少用三元運算符分配變量的能力(即「如果某事爲真,則將該變量設置爲x,否則將其設置爲y」)。我在想這樣的事情:AppleScript是否具有條件(三元)運算符的等效項?

set my_string to (if a is 0 return "" else return " - substring") 

這當然不起作用,我還沒有找到類似的東西。有沒有另一種方式來實現這個與蘋果?

+0

對於它的價值,這個操作符的名稱是「條件操作符」。它恰好是**三元運算符,但它不是**三元運算符,因爲雖然它是目前唯一的三元運算符,但沒有任何東西阻止某人發明另一個三元運算符。 – ErikE

回答

2

看起來的AppleScript不支持有條件的經營者,但你可以使用清單,用於此目的的兩個元素。當然,這不是一般很優雅:

set my_string to item (((a is 0) as integer) + 1) of {"", " - substring"} 

還有另外一個選擇:你可以使用shell腳本

set b to (do shell script "test " & a & " -eq 0 && echo 'is 0' || echo 'is not 0'") 

我怎能忘記? :)

在你的情況下,它會更簡單(因爲如果根本沒有回聲,將返回一個空字符串)。

set b to (do shell script "test " & a & " -eq 0 || echo '- substring'") 
2
if a is 0 then 
    set my_string to "" 
else 
    set my_string to " - substring" 
end if 

set a to 7 

set my_string to my subTern(a) 

on subTern(aLocalVar) 
    if aLocalVar is 0 then return "" 
    if aLocalVar is not 0 then return " - substring" 
end subTern