Swift 函数中的下划线
Underscore in Swift functions
我目前正在阅读的关于 Swift 游戏开发主题的书引用了 Swift 没有第一个参数的函数,而是像这样使用下划线....
URLForResource(_, withExtension)
在实际的代码示例中,下划线被替换为一个值,但当仅引用该函数时,它的编写方式如上。我在Apple文档中也看到它是这样写的。
我只是不明白为什么会有下划线。如果这是您引用某个函数的方式,那么用户应该如何知道用什么样的值代替下划线?
我读到函数中的第一个参数不必有外部名称,这很好,但是省略第一个参数似乎会导致必须查找函数的额外步骤看看要传递什么参数。
如果有人能帮我解决这个问题,我会很高兴。
谢谢
因此,如果您不希望用户必须输入变量名称,则只需使用下划线即可。例如,func foo(x: Int, y: Int)
被称为 foo(6, y: 10)
,所以如果您不希望调用该函数的人必须编写 y,您可以将函数创建为 func foo(x: Int, _ y: Int)
。此外,如果您希望被叫者必须写 x 和 y,您可以写 func foo(x x: Int, y: Int)
。所有这些都是风格化的。因此,我只会做有意义的事情。在 xCode 中,显然有自动完成功能,所以我总是只保留参数名称,因为这样可以使代码更清晰。因此,除了让您的代码更易于理解之外,使用下划线或函数变量名没有任何实际意义。
我目前正在阅读的关于 Swift 游戏开发主题的书引用了 Swift 没有第一个参数的函数,而是像这样使用下划线....
URLForResource(_, withExtension)
在实际的代码示例中,下划线被替换为一个值,但当仅引用该函数时,它的编写方式如上。我在Apple文档中也看到它是这样写的。
我只是不明白为什么会有下划线。如果这是您引用某个函数的方式,那么用户应该如何知道用什么样的值代替下划线?
我读到函数中的第一个参数不必有外部名称,这很好,但是省略第一个参数似乎会导致必须查找函数的额外步骤看看要传递什么参数。
如果有人能帮我解决这个问题,我会很高兴。 谢谢
因此,如果您不希望用户必须输入变量名称,则只需使用下划线即可。例如,func foo(x: Int, y: Int)
被称为 foo(6, y: 10)
,所以如果您不希望调用该函数的人必须编写 y,您可以将函数创建为 func foo(x: Int, _ y: Int)
。此外,如果您希望被叫者必须写 x 和 y,您可以写 func foo(x x: Int, y: Int)
。所有这些都是风格化的。因此,我只会做有意义的事情。在 xCode 中,显然有自动完成功能,所以我总是只保留参数名称,因为这样可以使代码更清晰。因此,除了让您的代码更易于理解之外,使用下划线或函数变量名没有任何实际意义。