在类之外覆盖函数

丹尼尔

我遇到了一种奇怪的行为。下面的代码产生一个编译错误,其中我在消息中调用bar():“参数#1调用缺少参数”

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() }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从基类覆盖函数

来自分类Dev

类之外的函数是什么?

来自分类Dev

在类定义之外移动函数

来自分类Dev

PHP-类之外的类调用函数

来自分类Dev

PHP-类之外的类调用函数

来自分类Dev

覆盖Swift UIColor类函数

来自分类Dev

覆盖不在类中的函数

来自分类Dev

访问类和函数之外的变量

来自分类Dev

如何在类路径之外覆盖spring active profile?

来自分类Dev

C ++:从模板化的基类覆盖函数

来自分类Dev

extjs覆盖动作类中的函数

来自分类Dev

C ++从基类派生调用覆盖的函数

来自分类Dev

从模板基类覆盖纯虚函数

来自分类Dev

Swift 类中用于覆盖的可选函数?

来自分类Dev

如何覆盖继承类的扩展中的函数?

来自分类Dev

如何使默认构造函数在noexcept类之外定义?

来自分类Dev

使用纯虚函数定义在C ++类之外?

来自分类Dev

在函数之外,类变量数组在Java中返回null

来自分类Dev

C ++-在模板类之外但在标头中定义成员函数

来自分类Dev

从Python类之外的函数引用已定义的变量

来自分类Dev

类定义之外的Python函数分配导致参数异常

来自分类Dev

从类定义之外调用React函数PropType

来自分类Dev

Angular 2-调用当前类之外的函数

来自分类Dev

在模板化类之外定义非模板函数

来自分类Dev

Java将类的所有对象存储在主函数之外

来自分类Dev

jQuery addClass-在我的函数之外添加和删除类

来自分类Dev

使用纯虚函数在C ++类之外定义?

来自分类Dev

C ++静态函数:放在类的范围之内还是之外?

来自分类Dev

在类声明之外定义函数体未编译