gpt4 book ai didi

xcode - 函数参数错误 - 缺少参数标签异常 - SWIFT

转载 作者:搜寻专家 更新时间:2023-11-01 06:10:20 26 4
gpt4 key购买 nike

我有一个奇怪的问题(我可以克服,但我想正确理解我的错误)。

我有一个我经常使用的小型随机数生成器函数:

func ranNum(low: Int, high:Int) -> UInt32 {
var result = arc4random_uniform(UInt32((high+1)-low)) + low
return result

当我在 XCode playgrounds 中使用它时,如果我传入如下内容,它就可以正常工作:

ranNum(1, 10)

但是,在常规 Swift 文件中,它会生成错误消息:Missing argument label 'hi:' in call。现在我可以通过这样调用函数来克服这个问题:

ranNum(1, hi:10)

除了它有点难以阅读之外,它为什么在 Playgrounds 中有效以及为什么它只需要第二个参数标签而不需要两者都没有意义。对于我不理解的任何帮助,我们将不胜感激。

最佳答案

这叫做 external parameter name ,默认情况下:

  • 全局函数:没有隐式的外部名称
  • 类/结构方法:在第一个之后为所有参数自动定义外部名称
  • 初始化器:为所有参数自动定义外部名称

如果没有明确指定,外部名称与本地参数同名。

您可以通过在局部参数名称前加上_ 来覆盖它。在你的情况下:

func ranNum(low: Int, _ high:Int) -> UInt32 {
...
}

您提到在 playground 中调用函数无需任何外部参数名称 - 我可能会争辩说:

  • 在 playground 中,你将这个函数作为一个全局函数
  • 在其他测试中,该函数是一个类/结构方法

我说的对吗?

关于xcode - 函数参数错误 - 缺少参数标签异常 - SWIFT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26755877/

26 4 0