在Swift中,这个下划线是什么意思?

9
我在Swift中使用了map函数来迭代一堆子视图,并将它们从一个父视图中删除。
self.buttons.map { $0.removeFromSuperview() }

当我从Swift 1.x升级到2.0时,Xcode警告map的返回值未被使用。所以我用let x = ...给它分配了一个变量并且我又收到了另一个警告:

enter image description here

所以我让Xcode为我修复了警告,它给了我这个:

_ = self.buttons.map { $0.removeFromSuperview() }

在方法参数的上下文之外,下划线的意义是什么?它代表什么?

我知道当方法参数是匿名的时候,下划线会代替它们。我说的是一个方法中间的下划线。它不是消息的一部分。


1
这个问题在这里得到了回答。https://dev59.com/iF0Z5IYBdhLWcg3w8kL3 以及这里https://dev59.com/EGAf5IYBdhLWcg3woj_N - Durul Dalkanat
关于 Swift 中的下划线,每个其他问题都讨论了方法名称的情况,其中下划线消除了内部和外部参数名称的需要。我在一个方法的中间看到了下划线。从上下文来看,这是一个很大的区别。 - Moshe
可能是这种情况下下划线的含义是什么?的重复问题。 - Eric Aya
3个回答

9

下划线表示需要设置一个变量,但您不打算在未来使用该变量。与为其命名一个复杂的名称相比,下划线更简单、更清晰,特别是在变量名称无关紧要的情况下(因为您不会再次使用它)。


您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Adam Nelson
我理解得对吗,这个(将右侧的值分配给下划线变量)只是为了隐藏编译警告? - Pasha

3

下划线作为本地名称的参数将被忽略。调用者必须提供参数,但在函数体内它没有名称,也无法在函数体内引用。它基本上是一个参数占位符,在函数体中不会用于任何事情。


-1

如果我没记错的话,这个是从Objective-C继承过来的。当你在应用程序中根本没有“使用”指针时,你会收到一个警告。在Swift 2中,我相信他们试图实现类似的功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接