在通用协议中键入覆盖,“明确指定修复此问题的通用参数”错误

时间:2017-07-26 04:34:35

标签: swift swift3 swift4

我正在尝试将默认关联类型更改为String。但得到这个错误

  

明确指定修复此问题的通用参数。

下面的代码适用于 Int 类型,但不适用于字符串。我错过了什么吗?

//override/Change the associated Type of Protocol

protocol Familiable{
    associatedtype FamilyType = Int
    func getName()->[FamilyType]
}

class NumberFamily:Familiable{

    func getName() -> [Int] {
        return [1,2,3,4,5]
    }
}

let numRef = NumberFamily()
print(numRef.getName())
type(of: numRef)

struct NormalFamily<T:ExpressibleByStringLiteral>: Familiable{

    func getName() -> [T] {
        return ["name1","name2"]
    }

}

let normalRef = NormalFamily()
normalRef.getName() 

0 个答案:

没有答案