我使用Swift中的map
函数来迭代一堆子视图,并将它们从超级视图中删除。
self.buttons.map { $0.removeFromSuperview() }
当我从Swift 1.x升级到2.0时,Xcode给出了一个警告,说map的返回值未使用。所以我用let x = ...
赋值,我得到了另一个警告:
所以我让Xcode为我修复了警告,它给了我这个:_ = self.buttons.map { $0.removeFromSuperview() }
下划线***不在方法参数的上下文中时有什么意义?它是什么意思?
我知道当一个方法参数是匿名的时候,下划线会代替它们,我说的是在方法中间的下划线,它不是消息的一部分。
3条答案
按热度按时间6tdlim6h1#
下划线表示你需要设置一个变量,但你不打算在将来使用这个变量。与其给它一个复杂的名字,下划线会更简单,更不混乱,特别是在变量名无关紧要的情况下。(因为你不会再次使用它。)
1cosmwyk2#
本地名称为下划线的参数将被忽略。调用者必须提供一个参数,但它在函数体中没有名称,无法在函数体中引用。它基本上是一个参数占位符,您不会在函数体中使用它。
tzdcorbm3#
如果我没弄错的话,这是从Objective-C继承来的。当你在应用程序中根本没有“使用”你的指针时,你会得到一个警告。在Swift 2中,我相信他们试图实现类似的东西。