尝试在三元表达式中 return

Try to return in ternary expression

我有一个 Swift 应用程序。

我从 Xcode 编译器

收到错误 Expected expression after '?' in ternary expression

private func getContentPre(highlight: Highlight) -> String!

    {
        highlight.contentPre.count == 0 ? return ">" : return highlight.contentPre
    }

Apple 文档说:

为什么不能像使用 if 语句那样在三元表达式中 return

return 没有 return 任何东西 - 我的意思是,对于调用它的函数。三元运算符的参数必须是表达式。

你应该像这样重写你的函数。这将评估 contentPre 变量的计数和 return 适当的响应。

private func getContentPre(highlight: Highlight) -> String! {
    return highlight.contentPre.count == 0 ? ">" :  highlight.contentPre
}

然而,看起来 contentPre 将是 String,您应该使用 .isEmpty,因为它比检查 String[= 的长度更高效17=]

private func getContentPre(highlight: Highlight) -> String! {
    return highlight.contentPre.isEmpty ? ">" :  highlight.contentPre
}