这是一个非常初学者的问题,但因为我一直想知道,例如在这种方法中:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool
为什么我们有didFinishLaunchingWithOptions作为一个论点?我知道这application将是 typeUIApplication并且 launchOptions 将是 type UIApplicationLaunchWithOptionsKey: any,但是为什么我们只在那里调用了这个“存根”didFinishLaunchingWithOptions如果您知道我的意思?
另外,第一个参数之前的下划线是什么意思?我不得不多次把它放在那里,这样我的功能才能工作。
在 Swift 中,所有参数都是命名的。但是,有时这会变得很麻烦或导致函数内部出现奇怪的参数名称。例如,如果你有一个函数看起来像
func makeNewThing(fromDifferentThing: SomeThing)
Run Code Online (Sandbox Code Playgroud)
在函数fromDifferentThing内部引用函数的参数会感觉很奇怪。
为了解决这个问题,Swift 允许您为相同的函数参数提供两个名称。一个参数名称将在函数外部使用,另一个名称将在函数内部使用。外部参数名称称为参数标签,内部名称通常称为参数名称。
因此,在我的示例中,您可以将函数定义为
func makeNewThing(fromDifferentThing thing: SomeThing)
Run Code Online (Sandbox Code Playgroud)
然后thing在函数内部引用参数,但将函数调用为
makeNewThing(fromDifferentThing: thing)
Run Code Online (Sandbox Code Playgroud)
下划线也与此有关。有些函数并不真正需要解释它们的参数是什么,所以 Swift 允许你说你的函数的第一个参数没有参数 label。您可以简单地调用这样的函数:
function(argument1, label2: argument2, label3: argument3...)
Run Code Online (Sandbox Code Playgroud)
并将其定义为:
func function(_ argument1: Type1, label2 argument2: Type2, /* ...and so on */)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |