《Swift 權威指南》簡單紀要

2021-10-01 19:23:38 字數 1239 閱讀 9793

swift 的作者 chris 在碩士畢業時提出了一套完整的執行時編譯思想,奠定了 llvm 的發展基礎。

從 os x 10.9 和 xcode 5 開始,llvm+gcc 已經被替換成了 llvm+clang 。

swift 雖然本身是靜態語言,是一門型別安全的語言,但其吸取了很多程式語言的優點,同時具備了很多動態語言的語法特性和互動方式。

在實際使用時,你能真切的感覺到其的靈活性,但是過於靈活真的好麼?有時候,選擇太多,反而會使整體**顯得雜亂。

在其他語言中,函式要返回多個值,則需要返回乙個物件或結構體指標,而在 swift 中可以通過返回元祖來實現多個值的返回。

可選變數的引入解決了大部分需要顯示處理的異常,這部分工作由編譯器完成。

很難說這個型別的使用簡化了程式設計,你需要對所有可能為空的變數進行判斷,然後決定是否使用。如果強制解包的時候,變數意外為 nil ,那同樣為產生異常。

當 swift 編譯器在檢測到陣列中的的所有元素型別都相同時,就會將變數或常量型別設為 swift 中的陣列型別 array ,否則,則設為 nsarray 型別。這種套路對於 dictionary 和 nsdictionary 同樣適用。

如此,便可以理解為何不能使用 as 將 [any] 轉為 array 型別了。

var test:nsmutabledictionary = ["name":"bill","age":50];

test.addentries(from: ["***":"man"])

let test:nsmutabledictionary = ["name":"bill","age":50];

test.addentries(from: ["***":"man"])

通過上面的對比,可以判斷出 var 和 let 只是對其後的變數進行修飾,決定其是否可以被變更,對其實際變數型別所包含的值能否變更並無約束力。

在閉包中可以定義捕獲列表,列出閉包中使用到的閉包外的所有變數,至於其是弱引用還是無主引用,則可以通過unowned來指定。

無主引用修飾的變數是不會自動置為 nil 的,也就意味著,使用無主引用修飾變數時,你需要確定該變數被使用時,其指向的例項是肯定存在的,即它總是在包含有無主引用變數的例項釋放後釋放。

Hadoop 權威指南

rpm包和deb包是兩種linux系統下最常見的安裝包格式,在安裝一些軟體或服務的時候免不了要和它們打交道。rpm包主要應用在redhat系列包括 fedora等發行版的linux系統上,deb包主要應用於debian系列包括現在比較流行的ubuntu等發行版上。yum可以用於運作rpm包,例如在f...

HTTP權威指南

web 伺服器會為所有 http 物件資料附加乙個 mime 型別,content type image jpeg,content length 12984 伺服器資源名被稱為統一資源識別符號 uniform resource identifier,uri uri 就像網際網路上的郵政位址一樣,在世...

KEEPLIAVED權威指南

vrrp通過224.0.0.18來實現 在vrrp中,不管誰是主,對外都是相同的mac和ip 作為主,必須不斷傳送vrrp包,告訴其他備,他是存活的 keepalived core,vrrp,check,libipfwc,libipvs keepalived對lvs進行封裝 keepalived配置...