Swift 三元语法错误

     2023-02-23     27

关键词:

【中文标题】Swift 三元语法错误【英文标题】:Swift ternary syntax error 【发布时间】:2015-05-09 06:36:29 【问题描述】:

我以前一直使用 Objective-C 进行编程,而且我是 Swift 的新手。这个错误 Xcode 让我很困惑。

func renderBufferAreaBAUp(yOffset: CGFloat, amount: CGFloat, ifLeft: Bool)
     
        var topViewIndexForIndexAdjust = ifLeft?leftTopIndex:rightTopIndex

在这一行我打算使用三元。 leftTopIndex 和 rightTopIndex 都是 Int 类型。然而,Xcode 给了我这一行的那些,

一行中的连续语句必须用';'分隔 预期表达

谁能告诉我这些是什么意思?谢谢。

【问题讨论】:

【参考方案1】:

Swift 错误消息通常含糊不清且没有帮助。您真正的问题是 Swift 需要在 ?: 周围留出一些空间。

var topViewIndexForIndexAdjust = ifLeft ? leftTopIndex : rightTopIndex

【讨论】:

【参考方案2】:

您必须使用空格来分隔操作数和运算符:

var topViewIndexForIndexAdjust = ifLeft ? leftTopIndex : rightTopIndex
                                       ^ ^            ^ ^

Swift 对此非常严格——即使是这行明显正确的代码:

let val =12

产生编译错误。

【讨论】:

【参考方案3】:

为三元运算符的神秘 Swift 错误消息而苦苦挣扎

错误 1

incrementValue = incrementValue == 0?1:incrementValue //errors saying add ";", consecutive statements must be separated by ";"

错误 2

incrementValue = incrementValue = 0 ? 1 : incrementValue //error - Assigning a variable to itself

正确的是 - WITH SPACES 和 WITH ==

incrementValue = incrementValue == 0 ? 1 : incrementValue //worked

【讨论】:

【参考方案4】:
    return episodes == nil ? .movie : .tvShow

【讨论】:

感谢您抽出宝贵时间回答!最好能解释一下你的答案,而不仅仅是代码。 这不是答案。我标记了它,但 anusha.V 做得不好并且没有删除它。因此应标记并删除 anusha.V。

swift三元条件operator.swift(代码片段)

查看详情

Swift 语法错误和 init()?

】Swift语法错误和init()?【英文标题】:SwiftSyntaxErrorandinit()?【发布时间】:2015-12-1909:11:15【问题描述】:我学得很快。我对初始化器有疑问init().比如我要初始化Int。varnumber:Int=20varnumber=Int(20)varnumber=Int.init(20)所有的表达方式都一... 查看详情

如何使用 Swift #selector 语法解决“歧义使用”编译错误?

】如何使用Swift#selector语法解决“歧义使用”编译错误?【英文标题】:HowdoIresolve"ambiguoususeof"compileerrorwithSwift#selectorsyntax?【发布时间】:2016-06-1001:25:11【问题描述】:[注意这个问题最初是在Swift2.2下制定的。它已针对Swi... 查看详情

swift三元算子,条件陈述(代码片段)

查看详情

将代码更新为最新的 Swift 4 语法会导致“线程 1:致命错误:索引超出范围”错误

】将代码更新为最新的Swift4语法会导致“线程1:致命错误:索引超出范围”错误【英文标题】:UpdatingcodetolatestSwift4syntaxresultsina"Thread1:Fatalerror:Indexoutofrange"error【发布时间】:2018-03-1510:45:06【问题描述】:我目前正在将... 查看详情

为啥 Swift 零合并三元运算符不返回未包装类型?

】为啥Swift零合并三元运算符不返回未包装类型?【英文标题】:Whydoesn\'tSwiftnil-coalescingternaryoperatorreturnunwrappedtype?为什么Swift零合并三元运算符不返回未包装类型?【发布时间】:2015-03-3103:45:52【问题描述】:我读到三元运算符... 查看详情

为啥 Swift 的三元运算符对空格如此挑剔?

】为啥Swift的三元运算符对空格如此挑剔?【英文标题】:WhyisSwift\'sternaryoperatorsopickyaboutwhitespace?为什么Swift的三元运算符对空格如此挑剔?【发布时间】:2016-04-0519:58:50【问题描述】:问题很简单,就是找不到答案!为什么不re... 查看详情

通过 Alamofire + Swift 2 发布参数的语法

】通过Alamofire+Swift2发布参数的语法【英文标题】:SyntaxforPOSTingParametersviaAlamofire+Swift2【发布时间】:2016-03-1523:18:04【问题描述】:错误显示:“可选类型字符串的值?未包装。您的意思是使用!还是?”。尝试通过Xcode纠正错误... 查看详情

这行三元运算符的语法是啥

】这行三元运算符的语法是啥【英文标题】:What\'sSyntaxaboutthislineofTernaryOperator这行三元运算符的语法是什么【发布时间】:2020-04-1210:36:07【问题描述】:我尝试了很多次来了解它的工作原理或语法代码是什么?greatest=(a>b&&a... 查看详情

在 Swift 三元运算符中使用 OR 操作数

】在Swift三元运算符中使用OR操作数【英文标题】:UsingORoperandinaSwiftternaryoperator【发布时间】:2018-01-0205:41:29【问题描述】:如何在三元运算符中使用OR?这是我正在尝试做的事情:letsurname=name=="John"||"Jack"?"John... 查看详情

Java三元运算符语法[重复]

】Java三元运算符语法[重复]【英文标题】:JavaTernaryoperatorsyntax[duplicate]【发布时间】:2015-03-2513:49:23【问题描述】:我有以下代码。我是这样理解的。在第一种情况下,三元运算符返回y的值,因为x=4和print语句按预期打印5。在... 查看详情

Swift cocoapod install framework (Alamofire) 在 xcode 中出现语法错误

】Swiftcocoapodinstallframework(Alamofire)在xcode中出现语法错误【英文标题】:Swiftcocoapodinstallframework(Alamofire)occurSyntaxerrorinxcode【发布时间】:2016-05-0910:56:56【问题描述】:我在安装一些外部框架时遇到了一些问题。因此,我在一个空白... 查看详情

将 FBO 保存到相机胶卷后清理后崩溃错误? Swift 2.0 选择器语法

】将FBO保存到相机胶卷后清理后崩溃错误?Swift2.0选择器语法【英文标题】:CrashingerroraftercleaningupaftersavingFBOtocameraroll?Swift2.0selectorsyntax【发布时间】:2016-08-2401:04:58【问题描述】:所以我有这段代码可以将当前绑定的FBO保存到... 查看详情

PromiseKit 语法链 swift

】PromiseKit语法链swift【英文标题】:PromiseKitSyntaxChainswift【发布时间】:2015-10-2619:44:25【问题描述】:我正在尝试在Promise工具包上链接一些Promise,当Promise类型像这样Promise<Location>时出现语法问题,只有当Promise具有类... 查看详情

带有三元运算符的海象运算符的正确语法是啥?

】带有三元运算符的海象运算符的正确语法是啥?【英文标题】:WhatisthecorrectsyntaxforWalrusoperatorwithternaryoperator?带有三元运算符的海象运算符的正确语法是什么?【发布时间】:2020-11-2701:33:47【问题描述】:查看Python-Dev和***,Pyt... 查看详情

Javascript三元运算符语法不理解[重复]

】Javascript三元运算符语法不理解[重复]【英文标题】:Javascriptternaryoperatorsyntaxnotunderstood[duplicate]【发布时间】:2016-09-0523:47:24【问题描述】:我想明白这一点,有人可以写成(if/else/elseif)语句???lists[list===\'todo\'?\'done\':\'tod... 查看详情

这是三元条件吗?:正确(客观)C 语法?

】这是三元条件吗?:正确(客观)C语法?【英文标题】:Isthisternaryconditional?:correct(Objective)Csyntax?【发布时间】:2012-02-0408:14:29【问题描述】:我认为这是不可能的,但显然在ObjectiveC中这是允许的:inta=b?:c;所以你看到他们在... 查看详情

NSNotfication.addObserver - 更新到当前的 Swift 语法?

】NSNotfication.addObserver-更新到当前的Swift语法?【英文标题】:NSNotfication.addObserver-UpdatetocurrentSwiftSyntax?【发布时间】:2017-07-2415:54:43【问题描述】:目前正在遵循教程,但是,某些语法已过时。基本上代码应该显示和隐藏用户键... 查看详情