gpt4 book ai didi

swift - 覆盖其类之外的函数

转载 作者:可可西里 更新时间:2023-11-01 01:05:50 24 4
gpt4 key购买 nike

我遇到了一个奇怪的行为。以下代码在我调用 bar() 时产生编译错误并显示消息:“Missing argument for parameter #1 call”

func bar() {
println("bar with no argument")
}

class ClassA {

func bar(varOfAnyType: String) {
println("bar with argument")
}

func foo() {
bar()
}
}

如果我更改 bar() 函数的名称,则不会出现错误:

func barNameChanged() {
println("bar with no argument")
}

class ClassA {

func bar(varOfAnyType: String) {
println("bar with argument")
}

func foo() {
barNameChanged()
}
}

编译器不允许在类外覆盖函数的原因是什么?

干杯,丹尼尔

最佳答案

目前,无论是否重载,Swift 编译器都无法区分同名的方法和全局函数。

解决方案是在全局函数前加上它的模块名称,例如

func bar() { }

class ClassA {
func bar(anything: String) {}
func foo() { Module.bar() }
}

关于swift - 覆盖其类之外的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30609698/

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