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

Don*_*ghn 5 applescript ternary-operator

熟悉编程后,我缺少使用三元运算符分配变量的功能(即“ x如果某项为真,则将变量设置为,否则将其设置为y”)。我在想类似的东西:

set my_string to (if a is 0 return "" else return " - substring")
Run Code Online (Sandbox Code Playgroud)

这当然行不通,而且我还没有找到任何类似的东西。是否有另一种方法可以使用applescript实现此目的?

cod*_*ody 3

看起来 AppleScript 不支持条件运算符,但您可以使用包含两个元素的列表来实现此目的。当然,总的来说,它不是很优雅:

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

还有另一种方法:您可以使用 shell 脚本

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

我怎么能忘记这个呢?:)

在你的情况下,它会更加简单(因为如果根本没有回显,将返回一个空字符串)。

set b to (do shell script "test " & a & " -eq 0 || echo '- substring'")
Run Code Online (Sandbox Code Playgroud)