在Apple文档的参考部分中,有很多这类事情的实例:
func runAction(_
action
: SKAction!)
的Objective-C“等效”是:
- (void)runAction:(SKAction *)
action
令我惊讶的是,(在Swift参考资料中)下划线和“动作”用斜体字后要留一个空格可能很重要。
但是我不知道这是要传达什么。所以也许问题是…参考文献中使用的约定是否有参考文献?
-这是我在此引用中指向下划线使用的页面:https : //developer.apple.com/documentation/spritekit/sknode#//apple_ref/occ/instm/SKNode/runAction
Swift3对如何使用和命名函数/方法参数名称和参数标签进行了一些更改。这对这个问题及其答案有影响。@Rickster在回答有关_underscores函数的另一个问题方面做得非常出色,
两种答案都是正确的,但我想澄清一点。
_
用于修改方法的外部参数名称行为。
在文档的“
方法的本地和外部参数名称”部分中,它表示:
Swift 默认为 方法中 的第一个参数名称提供一个本地参数名称,默认情况下为第二个及后续参数名称 提供本地和外部参数名称 。
另一方面,默认情况下,函数没有外部参数名称。
例如,我们foo()
在类中定义了此方法Bar
:
class Bar{
func foo(s1: String, s2: String) -> String {
return s1 + s2;
}
}
当您呼叫时foo()
,它称为bar.foo("Hello", s2: "World")
。
但是 ,您可以通过_
在s2
声明的位置前面使用来覆盖此行为。
func foo(s1: String, _ s2: String) -> String{
return s1 + s2;
}
然后,当您调用时foo
,可以像bar.foo("Hello", "World")
没有第二个参数的名称一样简单地调用它。
回到您的情况,这runAction
是一种方法,因为它SKNode
显然与type相关联。因此,放置一个_
before参数action
可以使您runAction
无需外部名称即可进行调用。
Swift 2.0更新
现在,函数和方法在局部和外部参数名称声明方面的工作 方式相同 。
现在,默认情况下通过使用外部参数名称(从第二个参数开始)来调用函数。该规则仅适用于纯Swift代码。
因此,通过_
在 函数 前面提供,调用者将不必指定外部参数名称,就像您对 method 所做的一样。
问题内容: 我正在做一个redux教程,并且看到这样的呼叫: 在其他地方定义为: 下划线是什么“ _”?为什么使用它? 问题答案: 这是私有方法和变量的约定。在JavaScript中,没有类的真正隐私。 这意味着您不应在对象之外使用这些方法(以“ ” 开头)。从技术上当然可以,但是“ ”表示您不应该这样做。
本文向大家介绍python中单下划线和双下划线分别是什么?相关面试题,主要包含被问及python中单下划线和双下划线分别是什么?时的应答技巧和注意事项,需要的朋友参考一下 name:一种约定,python内部的名字,是用来与用户自动以的名字区分开,防止冲突
>>> class MyClass(): ... def __init__(self): ... self.__superprivate = "Hello" ... self._semiprivate = ", world!" ... >>> mc = MyClass() >>> print mc.__superprivate Traceback (most recen
underline(resource $resourchHandle, Format::const $style): \Vtiful\Kernel\Format 示例 $format = new \Vtiful\Kernel\Format($fileHandle); $underlineStyle = $format->underline(Format::UNDERLINE_SI
问题内容: 我有一个PHP脚本,用户将输入一个名称,例如:, 但是,某些用户将使用空格而不是下划线,因此我的问题是: 如何在PHP中使用下划线自动替换空格? 问题答案:
问题内容: 而且我似乎无法理解这种变量声明: 究竟在做什么,为什么他们这样声明变量而不是 (我发现它是Go by Example:Maps的一部分) 问题答案: 它避免了必须为返回值声明所有变量。 它称为 空白标识符 。 如: (另一个’ ‘用例用于导入) 由于它丢弃了返回值,因此在您只想检查返回的值之一时很有用,例如“ EffectureGo,map ”中所示的“如何测试映射中键的存在? 要在地