国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Swift > 正文

淺談swift 4.0中private所發生的變化

2020-03-09 17:42:40
字體:
來源:轉載
供稿:網友

前言

當Swift首次引入訪問級別時,對此進行了一些混淆和不解。雖然開發人員對于添加對Swift編程語言的訪問控制感到興奮,但是private關鍵字的行為與其他編程語言的行為不同。

之前在swift/36854.html">swift 3.0的時候,如果把聲明的變量或方法加上private前綴,那么它就只能在當前的class里使用,extension 中也不能使用。改成fileprivate,卻又可以在其他類中實例化后使用,屬性的作用域就會更大,可能會不小心造成屬性的濫用。

所以在Swift 4 中,private 的屬性的作用域擴大到了 extension 中,并且被限定在了 struct 和 extension 內部,這樣就不需要再改成 fileprivate 了。

Swift4.0到底有哪些新改變呢?

  • 字符串String類型更加人性化,多行字符串文字,支持Range,也算集合類型
  • 改進的private的訪問權限,私有訪問修飾符
  • 更智能更安全的Key Value Coding 鍵值編碼
  • 詞典和集合
  • 歸檔和序列化
  • 單面范圍
  • 通用下標
  • MutableCollection.swapAt( __ : _ _ )
  • 相關類型限制
  • 類和協議存在
  • 限制@objc推論

下面進行本文的正文介紹:

上代碼

class ViewController: UIViewController { var test = "" private var test1 = "" fileprivate var test2 = "" override func viewDidLoad() {  super.viewDidLoad()  testIt() // 之前會報錯 需要修改為fileprivate } func testForNormal(){  } private func testForPrivate(){  } fileprivate func testForfileprivate(){   } override func didReceiveMemoryWarning() {  super.didReceiveMemoryWarning()  // Dispose of any resources that can be recreated. }}extension ViewController { private func testIt(){  testForPrivate() /// swift 4.0 可以訪問 之前不行 }}class other { let a = ViewController() func lalal(){  _ = a.test /// Normal  _ = a.test2 /// fileprivate  a.testForNormal() /// Normal  a.testForfileprivate() /// fileprivate  a.testForPrivate() /// 報錯 'testForPrivate' is inaccessible due to 'private' protection level } }

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 睢宁县| 弥渡县| 苏尼特右旗| 桂林市| 台南县| 桂林市| 蓬莱市| 奇台县| 赞皇县| 麻城市| 临西县| 敦化市| 南充市| 梁平县| 浠水县| 廊坊市| 博爱县| 重庆市| 南溪县| 洛阳市| 全州县| 福海县| 济源市| 漳平市| 太保市| 德兴市| 南乐县| 兖州市| 项城市| 康乐县| 阿勒泰市| 会东县| 沙坪坝区| 夏邑县| 托克逊县| 开原市| 海南省| 德保县| 宝坻区| 东明县| 丰原市|