【发布时间】:2014-09-11 11:35:12
【问题描述】:
如果我有这样定义的结构:
struct Cat {
static let Siamese = "Siamese"
static let Tabby = "Tabby"
static let Fluffy = "Fluffy"
static func cat () -> [String] {
return [Siamese, Tabby, Fluffy]
}
}
为什么我不能这样访问它?
var cat:Cat = Cat.Siamese //"NSString" is not a subtype of Cat
【问题讨论】:
-
Cat.cat() 的语义是什么?它肯定不能正确读取。重要的编程方面之一是避免代码/模型与现实世界之间的差异。建议
class CatBreed { let name ... }和class Cat { let breed : CatBreed ... }。您的代码正在与自己“战斗”(在您使用static let ...和static func cat()时)。 -
你应该这样调用 var cat:String = Cat.Siamese