gpt4 book ai didi

swift - Swift 中具有多个条件的 If 语句

转载 作者:搜寻专家 更新时间:2023-10-31 08:23:48 28 4
gpt4 key购买 nike

我有一个 if 语句,我希望有如下两个条件:

if let name = json["resource"]["fields"]["name"].stringValue && name.hasPrefix("/")

当我这样做时,出现错误“使用未解析的标识符名称”。那有什么解决办法呢?

if let name = json["resource"]["fields"]["name"].stringValue && "test".hasPrefix("/"){

如果我改为这样做,我会收到错误消息“可选类型‘$T16’不能用作 bool 值;改为测试‘!= nil’”

这可能是个愚蠢的问题,但我必须承认我迷路了......

谢谢你的帮助

最佳答案

您没有使用常规的 if 语句,您使用的是可选绑定(bind),并且您不能像那样将绑定(bind)与对绑定(bind)值的检查结合起来。不过,您可以将其分解为类似这样的内容。

if let name = json["resource"]["fields"]["name"].stringValue {
if name.hasPrefix("/") {
// stuff
}
}

编辑:看起来这已经在Swift 1.2 中改变了.根据发行说明,现在可以向 if let 和 while let 语句添加额外条件:

The “if let” construct has been expanded to allow testing multiple optionals and guarding conditions in a single if (or while) statement using syntax similar to generic constraints:

if let name = json["resource"]["fields"]["name"].stringValue where name.hasPrefix("/") {
// stuff
}

上面的代码应该可以达到你想要的效果。 (未经测试)

关于swift - Swift 中具有多个条件的 If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28393707/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com