【问题标题】:Swift protocol oriented programming, resolving naming collisionSwift 面向协议编程,解决命名冲突
【发布时间】:2016-02-05 12:38:49
【问题描述】:

我玩了一点面向协议的编程,遇到了一个可能很常见的案例,但我不知道如何解决它。下面我有 2 个协议,如果该类打算实现该协议,则两者都需要一个名为 param 的 var。但是在协议中, var 参数是 2 种不同的类型。那么我怎样才能在不改变协议的情况下实现两者呢?代码如下:

protocol firstProtocol
{
    var param:Int { get set }
}

protocol secondProtocol
{
    var param:String { get set }
}

class protocolImplementer: firstProtocol, secondProtocol
{
    var param:String = "foo"
    var param:Int = 0 // Invalid redeclaration of 'param'
}

【问题讨论】:

    标签: ios swift protocols


    【解决方案1】:

    你不能。 一个类不能有 2 个同名的变量。编译器如何决定从某处调用时您引用的是哪个变量? 尽管方法有不同的参数,但它们是可能的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 2015-04-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多