0
我正在从编码Obj-c过渡到Swift 3很长一段时间。所以我认为我理解可选项的想法,但我对这个问题感到困惑。假设我有一个叫Monster的课。我也有一个叫Town的结构体。Swift 3:类和结构可选项
struct Town {
var population: Int = 0
var name: String?
var hasSherrif: Bool?
var hasTheater: Bool?
var hasTownhall: Bool?
var hasSchool: Bool?
var hasGeneralStore: Bool?
var numOfHomes: Int = 0
}
和怪物......
class Monster {
var town: Town?
var name: String?
func moveToTown(_ thisTown: Town) {
town = thisTown
if let strName = name, let strTownName = town?.name {
print("\(strName) moved to \(strTownName)")
} else if let strName = name {
print("\(strName) move to a town with no name")
} else {
print("The monster moved to a town. Might help if you give stuff names, just saying.")
}
}
}
在moveToTown(_ thisTown:镇),我怎么能检查是否怪物还没有名字,但镇呢?我想改变这一行:
} else if let strName = name {
喜欢的东西
} else if let strName = name && town?.name == nil {
,然后添加其他条件
} else if strName == nil && let strTownName = town?.name {
}
感谢,如果有一般的任何可能被清理随时批评。