gpt4 book ai didi

ios - 相同数据类型的快速重载初始化程序如何工作?

转载 作者:行者123 更新时间:2023-11-28 06:54:47 25 4
gpt4 key购买 nike

Swift 说函数是由参数类型序列和返回类型组成的类型。但是初始值设定项允许具有相同的类型但不同的参数本地/外部名称。从类型的角度来看,它如何区分这一点。或者因为它不打算被传递,所以它的处理方式与函数完全不同?

有人能帮我理解一下吗?

class Test {

init(param1: Int) {

}

init(param2: Int) {
//This is good
}

func testMethod(param1: Int) {

}

func testMethod(param2: Int) {
//Compile error
}
}

最佳答案

默认情况下,方法的第一个参数不是方法签名的一部分。

func testMethod(param1: Int) {}
func testMethod(param2: Int) {}

// are both called like this:
.testMethod(0)
.testMethod(0)

但是你可以让第一个参数显式化,就像它是初始化器的默认值一样:

func testMethod(param1 param1: Int) {}
func testMethod(param2 param2: Int) {}

// are called like this:
.testMethod(param1: 0)
.testMethod(param2: 0)

按照 Swift 约定,第一个参数名称应该是初始方法名称的一部分,如下所示:

func testMethodParam1(param1: Int) {}
func testMethodParam2(param2: Int) {}

关于ios - 相同数据类型的快速重载初始化程序如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33973554/

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