0
私はObj-cをコード化してからSwift 3に移行しています。だから私はオプションの考えを理解していると思うが、私はこの問題を混乱させる。モンスターというクラスがあるとします。私は町と呼ばれる構造体も持っています。 moveToTown(_ thisTown:タウン)でスイフト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.")
}
}
}
モンスターに名前がないが、町が行う場合、どのように私がチェックすることができますか?私は、この行を変更したいと思います:
} else if let strName = name && town?.name == nil {
のようなものに
} else if let strName = name {
をしてから、別の条件付き
} else if strName == nil && let strTownName = town?.name {
}
感謝を追加して、クリーンアップすることができ、一般的には何があるのであれば自由に批判する。