驗(yàn)證一個(gè)實(shí)例的類(lèi)型'類(lèi)型轉(zhuǎn)換'在 Swift 語(yǔ)言編程中。它是用來(lái)檢查實(shí)例類(lèi)型是否屬于特定超類(lèi)或子類(lèi)或其自己的層次結(jié)構(gòu)定義。
Swift 類(lèi)型轉(zhuǎn)換提供兩個(gè)操作符:“is” 檢查值的類(lèi)型和 'as' 將類(lèi)型值轉(zhuǎn)換為不同的類(lèi)型值。 類(lèi)型轉(zhuǎn)換還檢查實(shí)例類(lèi)型是否符合特定的協(xié)議一致性標(biāo)準(zhǔn)。
類(lèi)型轉(zhuǎn)換用于檢查實(shí)例的類(lèi)型或者它屬于特定類(lèi)型。此外,檢查類(lèi)和它的子類(lèi)層次結(jié)構(gòu)來(lái)檢查并轉(zhuǎn)換這些實(shí)例,使之作為一個(gè)相同的層次結(jié)構(gòu)。
class Subjects { var physics: String init(physics: String) { self.physics = physics } } class Chemistry: Subjects { var equations: String init(physics: String, equations: String) { self.equations = equations super.init(physics: physics) } } class Maths: Subjects { var formulae: String init(physics: String, formulae: String) { self.formulae = formulae super.init(physics: physics) } } let sa = [ Chemistry(physics: "solid physics", equations: "Hertz"), Maths(physics: "Fluid Dynamics", formulae: "Giga Hertz")] let samplechem = Chemistry(physics: "solid physics", equations: "Hertz") println("Instance physics is: \(samplechem.physics)") println("Instance equation is: \(samplechem.equations)") let samplemaths = Maths(physics: "Fluid Dynamics", formulae: "Giga Hertz") println("Instance physics is: \(samplemaths.physics)") println("Instance formulae is: \(samplemaths.formulae)")
當(dāng)我們使用 playground 運(yùn)行上面的程序,得到以下結(jié)果。
Instance physics is: solid physics Instance equation is: Hertz Instance physics is: Fluid Dynamics Instance formulae is: Giga Hertz
進(jìn)行類(lèi)型檢查,用 'is' 操作符。在 'is' 操作符檢查類(lèi)型實(shí)例是否屬于特定的子類(lèi)型,如果它屬于該實(shí)例返回“true”,否則將返回“false”。
class Subjects { var physics: String init(physics: String) { self.physics = physics } } class Chemistry: Subjects { var equations: String init(physics: String, equations: String) { self.equations = equations super.init(physics: physics) } } class Maths: Subjects { var formulae: String init(physics: String, formulae: String) { self.formulae = formulae super.init(physics: physics) } } let sa = [ Chemistry(physics: "solid physics", equations: "Hertz"), Maths(physics: "Fluid Dynamics", formulae: "Giga Hertz"), Chemistry(physics: "Thermo physics", equations: "Decibels"), Maths(physics: "Astro Physics", formulae: "MegaHertz"), Maths(physics: "Differential Equations", formulae: "Cosine Series")] let samplechem 上一篇:Swift 可選鏈下一篇:Swift 方法