第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Swift中的'open'關(guān)鍵字是什么?

Swift中的'open'關(guān)鍵字是什么?

幕布斯6054654 2019-12-13 09:44:12
ObjectiveC.swift來自標準庫的文件包含圍繞228行的以下幾行代碼:extension NSObject : Equatable, Hashable {  /// ...  open var hashValue: Int {    return hash  }}open var在這種情況下是什么意思,或者open通常是什么關(guān)鍵字?
查看完整描述

3 回答

?
至尊寶的傳說

TA貢獻1789條經(jīng)驗 獲得超10個贊

open 是Swift 3中的新訪問級別,隨實現(xiàn)而引入


SE-0117允許區(qū)分公共訪問權(quán)限和公共替代權(quán)限

自2016年8月7日起,Swift 3快照和Xcode 8 beta 6都可以使用它。


簡而言之:


在定義模塊之外,可以訪問和可繼承一個open類。一類成員是可訪問和 可重寫的定義模塊的外部。open

在定義模塊之外,可以訪問一個public類,但不能將其子類化。甲類成員是可訪問的,但 不可重寫的定義模塊的外部。public

那么open是什么public曾經(jīng)在以前的版本雨燕和的訪問public受到限制。或者,如Chris Lattner在 SE-0177中所述:允許區(qū)分公共訪問權(quán)限和公共可重寫性:


現(xiàn)在,“開放”只是“比公眾更公開”,提供了一個非常簡單和干凈的模型。


在您的示例中,open var hashValue是一個可以訪問的屬性,可以在NSObject子類中覆蓋它。


查看完整回答
反對 回復(fù) 2019-12-13
?
慕桂英3389331

TA貢獻2036條經(jīng)驗 獲得超8個贊

開放是一種訪問級別,是為了對Swift的類繼承施加限制而引入的。


這意味著開放訪問級別只能應(yīng)用于類和類成員。


在課堂上


一個開放類可以在其定義的模塊中以及在導(dǎo)入定義該類的模塊的模塊中子類化。


班級成員


同樣適用于班級成員。打開的方法可以在定義該模塊的模塊中和在導(dǎo)入定義該方法的模塊的模塊中被子類覆蓋。


此更新的需要


某些類的庫和框架并非設(shè)計為子類化,這樣做可能會導(dǎo)致意外行為。Apple原生庫也不允許覆蓋相同的方法和類,


因此,添加之后,它們將相應(yīng)地應(yīng)用公共和私有訪問級別。


查看完整回答
反對 回復(fù) 2019-12-13
  • 3 回答
  • 0 關(guān)注
  • 871 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號