问题标签 [optional-chaining]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何链接可能在 Python 中返回 None 的属性查找?
我的问题是一个普遍的问题,如何在中间的一个可能返回时链接一系列属性查找None
,但是由于我在尝试使用 Beautiful Soup 时遇到了这个问题,所以我将在这种情况下询问它。
Beautiful Soup 解析 HTML 文档并返回一个对象,该对象可用于访问该文档的结构化内容。例如,如果解析的文档在变量soup
中,我可以通过以下方式获取其标题:
我的问题是,如果文档没有标题,则soup.head.title
返回None
并且后续string
查找会引发异常。我可以将链条分解为:
但是,在我看来,这很冗长且难以阅读。
我可以写:
但这是冗长且低效的。
如果想到的一种解决方案(我认为这是可能的)是创建一个对象(调用它nil
),它将返回None
任何属性查找。这将允许我写:
但这很丑陋。有没有更好的办法?
javascript - JavaScript 中的可选链
我最近用 Swift 编程了很多。今天,当我遇到问题时,我在 JavaScipt 中做了一些工作:
是否有类似于 JavaScript 中的可选链接的东西?一种undefined is not an object
没有任何变量的预防方法?
例子:
将失败一半时间,因为有时会test
返回未定义。
我能想到的唯一解决方案是一个函数:
我希望能够做类似的事情:
问号后面的部分只有在test
返回一个对象时才会执行。
但这不是很优雅。有更好的吗?运算符的神奇组合?
编辑我知道我可以重写test
以返回一些东西。但我想知道是否有类似可选链接的东西。我对上述示例的特定解决方案不感兴趣。如果无法控制返回未定义的函数,我也可以使用它。
ios - 返回 Int 的可选链接
这是我如何返回表视图的行数:
但是,我想使用可选链接使其更简洁......但是编译器对我的代码不满意。我试试这个:
它抱怨计数是 Int 类型的?我应该强制打开它,所以我这样做:
它抱怨 count 是 Int 类型。使用可选链接,如果数据不是 nil,它应该只获取计数,如果数组不是 nil,那么我知道计数将返回 ok。
我错过了什么?谢谢
swift - 从 Apple 的 Swift 编程编写一段代码时出现意外错误(可选链接)
我编写了以下与 Apple 的 Swift Programming Language 相同的代码,但出现意外错误: type'()' does not conform to protocol 'boolean type' ,其位置显示在以下代码中:
swift - Swift 的可选链接总是使用 if let 构造完成,还是只是使用带可选的问号完成?
根据 Apple 文档,可选链接如下:
如果可选值非零,则通过在希望调用属性、方法或下标的可选值后放置问号 (?) 来指定可选链接。...当可选项为 nil 时,可选项链接优雅地失败...
我对此的解释是,如下结构是可选链接:
someMasterObject.possiblyNilHandler?.handleTheSituation()
...并且如果处理程序不为零,上述行将调用 handleTheSituation 方法,如果处理程序为零,则优雅地失败(跳过行)。
然而,我看到的几乎所有可选链接示例都使用“if let”构造,如下所示:
事实上,我在网上找到的文档和示例大量使用了与可选链接相关的“if let”结构,看起来好像是可选链接。
但是,我是否正确假设我的第一个示例是支持使用可选链接,并且 if let 构造是使用(或密切相关)可选链接的另一种构造?
swift - 如何在快速搜索字典时使用可选链接?
我想使用 if let 安全地搜索快速字典中的值,并确保随着我对字典的深入了解它是类型安全的。该字典包含包含 NSArray 的字典,其中包含更多字典。
第一次尝试我的代码如下所示:
我如何将它缩短到一两行?
我意识到如果它是 2 层,我可以链接它。这有效:
但是任何比这更长的链都不会编译。
有没有办法不止一次地链接字典?
谢谢
ios - 回调方法不在 Swift 中从 UIView 调用到 ViewController
我有两个类CustomSwipOut,它们是UIView的子类和UIViewController的ViewController子类。委托的回调方法没有在ViewController 类中从 CustomSwipeOut中定义的表视图的didSelectRowAtIndexPath委托方法中触发。我在 ViewController 类中完成了可选绑定var a = CustomSwipeOut(); a.delegate = ViewController()
//ViewController 类
uitableview - Swift 赋值左侧使用的可选链接
在赋值语句的左侧使用可选链是什么意思?如果可选变量为零,应用程序会崩溃吗?
例如
ios - 如何在 Swift 中引用导航控制器?
我创建了一个UINavigationController
对象并将其设置为窗口的rootViewController
属性。对象的是一个名为 的rootViewController
类。例如,如果我想从 to 导航,我可以使用:UINavigationController
UINavigationMenuViewController
UINavigationMenuViewController
UIUserProfileViewController
也
效果似乎是一样的。我想知道有什么区别。我猜第二种方式更安全,如果我忘记将UINavigationMenuViewController
对象嵌入到 中UINavigationController
,与第一种情况相比,应用程序不会崩溃。我想它也被称为可选链接,我只是不太确定,因为我还在学习 Swift。
请给我一些建议。
swift - 构造函数调用的可选链接?
我想有选择地将 an 强制NSNumber?
转换为 an Int?
,但初始化方法Int
只需要init(NSNumber)
,所以我不能通过NSNumber?
.
有没有办法让我压缩这段代码,以便它使用可选链接之类的东西?