我在Swift中使用以下代码将我的头撞在墙上.我已经定义了一个简单的协议:
protocol Nameable {
var name : String { get set }
}
Run Code Online (Sandbox Code Playgroud)
并通过以下方式实施:
class NameableImpl : Nameable {
var name : String = ""
}
Run Code Online (Sandbox Code Playgroud)
然后我在另一个文件中有以下方法(不要问我为什么):
func nameNameable( nameable: Nameable, name: String ) {
nameable.name = name
}
Run Code Online (Sandbox Code Playgroud)
问题是编译器在此方法中为属性赋值提供以下错误:
无法在"名字"中指定"名称"
我看不出我做错了什么......以下代码编译得很好:
var nameable : Nameable = NameableImpl()
nameable.name = "John"
Run Code Online (Sandbox Code Playgroud)
我确信这是我忽略的一些简单 - 我做错了什么?