gpt4 book ai didi

ios - 为什么 Swift 中的方法可以有没有类型的参数?

转载 作者:搜寻专家 更新时间:2023-11-01 05:56:12 25 4
gpt4 key购买 nike

这是一个非常初学者的问题,但我一直想知道例如在这种方法中:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool

为什么我们将 didFinishLaunchingWithOptions 作为参数?我知道 application 将是 UIApplication 类型,而 launchOptions 将是 UIApplicationLaunchWithOptionsKey: any 类型,但为什么我们只有这个“ stub ”那里叫 didFinishLaunchingWithOptions,你知道我的意思吗?

另外,第一个参数前的下划线是什么意思?我不得不多次将它放在那里,这样我的功能才能正常工作。

最佳答案

在 Swift 中,所有的参数都是有名字的。但是,有时这会变得很麻烦或导致函数内部出现奇怪的参数名称。例如,如果您有一个看起来像这样的函数

func makeNewThing(fromDifferentThing: SomeThing)

在函数内部将函数的参数称为 fromDifferentThing 会让人觉得很奇怪。

为了解决这个问题,Swift 允许您为相同的函数参数指定两个 名称。一个参数名称将在函数外部使用,另一个名称将在函数内部使用。外部参数名称称为参数标签,内部名称通常称为参数名称

所以在我的示例中,您可以将函数定义为

func makeNewThing(fromDifferentThing thing: SomeThing) 

然后在函数内部将参数作为 thing 引用,但将函数称为

makeNewThing(fromDifferentThing: thing)

下划线也与此有关。有些函数实际上不需要解释它们的参数是什么,因此 Swift 允许您说函数的第一个参数没有参数标签。您可以简单地调用这样的函数:

function(argument1, label2: argument2, label3: argument3...)

并将其定义为:

func function(_ argument1: Type1, label2 argument2: Type2, /* ...and so on */)

关于ios - 为什么 Swift 中的方法可以有没有类型的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43190041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com