Swift   发布时间:2022-04-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了什么能完全区分Swift中的两个函数?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道是什么让两个“相似的功能”彼此不同,并且可以毫不含糊地被称为 @H_301_7@

@H_301_7@这就是我从自学中学到的东西

@H_301_7@唯一性来自:函数名称参数顺序和参数名称返回类型.它们的组合必须是唯一的才能使功能独特(请参阅下面的示例)

@H_301_7@> Nmu1和Num2会导致含糊不清,因为返回类型(没有所谓的返回名称,函数名称已经充当此角色)在调用函数时不会被引用
>然Num3函数具有不同的参数名称,但它不会将它与Num1和Num2中的函数唯一地分开.因为在调用函数时参数名称不会被引用,所以只有不同的参数名称不会使函数唯一;并且Num4中的函数与上面的所有函数不同,因为它的签名函数名称Argument order和参数名称返回类型在所有前3个函数中是唯一的.
> Num5和Num6函数彼此不同,因为它们在定义时具有不同的参数顺序

@H_301_7@

@H_262_12@//Num1 func foo(guy name: String) -> String { return "Hi \(Name)" } //Num2 func foo(guy name: String) { print("Hi \(Name)") } //Num3 func foo(guy called: String) -> String { return "Hi \(called)" } //Num4 func foo(dude name: String) -> String { return "what's up \(Name)" } //Num5 func foo(man name: String,from place: String) { print("Hi! I'm \(Name) I come from \(placE)") } //Num6 func foo(from place: String,man name: String) { print("Hi! I'm \(Name) I come from \(placE)") } @H_301_7@问题:我可能会错过甚至可能误解某些部分.你可以纠正我添加我错过的部分,这将是非常好的

@H_301_7@谢谢

@H_301_7@[更新]
让我们再讨论一下这个问题.让我们从讨论the difference between Argument and Parameter的问题开始.这个问题在这里很有意义!

@H_301_7@回到官方swift文档的引用

@H_301_7@

@H_301_7@参数,参数,参数标签和参数名称不同.这里的差异可以用于差分函数.

@H_301_7@具有相同参数名称,相同参数顺序,相同返回类型甚至相同功能体的函数可以与不同参数标签区分开.

@H_301_7@

@H_262_12@func foo(dude name: String) -> Int { print("Hi \(Name)!") return 1 } func foo(man name: String) -> Int { print("Hi \(Name)!") return 1 } //foo(dude: String) & foo(man: String) is identical when calling @H_301_7@欲了解更多信息,请致电Multiple functions with the same name

解决方法

定义为与Obj-C兼容的方法,Num1和Num2不能一起存在,并且在NSObject子类中定义它们会有错误;但是,你可以将它们标记为@nonobjc并且错误将消失,因为Swift能够通过预期的返回类型选择正确的重载: @H_301_7@

@H_301_7@

@H_262_12@//Num1 @nonobjc func foo(guy name: String) -> String { return "Hi \(Name)" } //Num2 @nonobjc func foo(guy name: String) { print("Hi \(Name)") } @H_301_7@除了这个标记,你的所有其他要点对我来说都是正确的

大佬总结

以上是大佬教程为你收集整理的什么能完全区分Swift中的两个函数?全部内容,希望文章能够帮你解决什么能完全区分Swift中的两个函数?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。