AppleScript是否具有条件(三元)运算符的等价物?

时间:2012-12-25 21:19:09

标签: applescript ternary-operator

熟悉编程,我错过了使用三元运算符分配变量的能力(即“如果某些内容为真,则将变量设置为x”,否则将其设置为y“)。我想的是:

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

这当然行不通,我还没有找到类似的东西。是否有另一种方法可以通过AppleScript实现这一目标?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

看起来AppleScript不支持条件运算符,但您可以使用带有两个元素的list来实现此目的。当然,它一般不是很优雅:

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'")