1、class 引用類型,支持繼承,成員默認(rèn)是私有的,多用于復(fù)雜對象建模,復(fù)制的對象,改變屬性,原屬性也會改變。
struct 值類型,不支持繼承,成員默認(rèn)是公開的,用于簡單的數(shù)據(jù)結(jié)構(gòu);復(fù)制的對象,改變屬性,原屬性不會改變;方法修改需要加mutating。
2、iOS Swift func:調(diào)用時可以使用實(shí)例名或函數(shù)名,可以被實(shí)例和類型調(diào)用
class func:調(diào)用時需要通過類名來調(diào)用,不能通過實(shí)例名調(diào)用
@objc func:調(diào)用時需要使用 Objective-C 的語法進(jìn)行調(diào)用,不能使用 Swift 語法
final修飾的方法是不能被繼承和重寫的。
3、guard 條件表達(dá)式 else {
// 必須包含 return/break/continue/throw 等終止執(zhí)行的語句
}
布爾表達(dá)式,為真時跳過后續(xù)代碼,為假時執(zhí)行 else 代碼塊。
4、泛型函數(shù):泛型函數(shù)能夠接收多種類型的參數(shù),而不僅僅是一種固定的類型。這使得函數(shù)更加靈活,可以在不修改函數(shù)體的情況下,用于處理不同的數(shù)據(jù)類型。
5、閉包是可以在代碼中被傳遞和引用的功能性獨(dú)立代碼塊,跟C和Objective-C中的代碼塊(blocks)和其他一些語言中的匿名函數(shù)相似
{
(參數(shù)列表) -> 返回值類型 in 函數(shù)體代碼
}
6、swift是強(qiáng)類型(靜態(tài))語言,oc是弱類型(動態(tài))語言。
swift 面向協(xié)議,oc面向?qū)ο缶幊獭?br>
swift支持泛型,oc只支持輕量泛型。
Swift編譯時確定類型,Oc運(yùn)行時確定類型。
7、actor,rxswift
8、數(shù)據(jù)安全,使用async await