驗(yàn)證一個(gè)實(shí)例的類型'類型轉(zhuǎn)換'在 Swift 語(yǔ)言編程中。它是用來檢查實(shí)例類型是否屬于特定超類或子類或其自己的層次結(jié)構(gòu)定義。
Swift 類型轉(zhuǎn)換提供兩個(gè)操作符:“is” 檢查值的類型和 'as' 將類型值轉(zhuǎn)換為不同的類型值。 類型轉(zhuǎn)換還檢查實(shí)例類型是否符合特定的協(xié)議一致性標(biāo)準(zhǔn)。
類型轉(zhuǎn)換用于檢查實(shí)例的類型或者它屬于特定類型。此外,檢查類和它的子類層次結(jié)構(gòu)來檢查并轉(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)行類型檢查,用 'is' 操作符。在 'is' 操作符檢查類型實(shí)例是否屬于特定的子類型,如果它屬于該實(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 方法