讀古今文學網 > iOS編程基礎:Swift、Xcode和Cocoa入門指南 > 1.1 基礎 >

1.1 基礎

一個完整的Swift命令是一條語句。一個Swift文本文件包含了多行文本。換行符是有意義的。一個程序的典型佈局就是一行一條語句:


print("hello")
print("world")  

(print命令會在Xcode控制台提供即時反饋。)

可以將多條語句放到一行,不過這就需要在語句間加上分號:


print("hello"); print("world")  

可以將分號放到語句的末尾,也可以在一行上單獨放置一個分號,不過沒人這麼做(除了習慣原因之外,因為C和Objective-C要求使用分號):


print("hello");
print("world");  

與之相反,單條語句可以放到多行,這樣做可以防止一行中出現過長的語句。不過在這樣做的時候要注意語句的位置,以免對Swift造成困擾。比如,左圓括號後面就是個不錯的位置:


print(
    "world")  

一行中雙斜線後面的內容會被當作註釋(即所謂的C++風格的註釋):


print("world") // this is a comment, so Swift ignores it  

還可以將註釋放到/*...*/中,就像C一樣。與C不同,Swift風格的註釋是可以嵌套的。

Swift中的很多構建塊都會將花括號用作分隔符:


class Dog {
    func bark {
        print("woof")
    }
}  

根據約定,花括號中的內容由換行符開始,並且通過縮進增強可讀性,如上述代碼所示。Xcode會幫助你應用該約定,不過實際情況卻是Swift並不在意這些,像下面這樣的佈局也是合法的(有時也更加便捷):


class Dog { func bark { print("woof") }}  

Swift是一門編譯型語言。這意味著代碼必須要先構建(通過編譯器,由文本轉換為計算機可以理解的某種底層形式),然後再執行並根據指令完成任務。Swift編譯器非常嚴格;在編寫程序時,你經常會構建並運行,不過你會發現第一次甚至都無法構建成功,原因就在於編譯器會識別出一些錯誤,如果想讓代碼運行,你就需要修復這些問題。有時候,編譯器會給出一些警告;這時代碼可以運行,不過一般情況下,你應該有所警戒並修復編譯器報出的警告。編譯器的嚴格性是Swift最強大的優勢之一,可以在代碼開始運行前提供最大程度的審計正確性。

Swift編譯器的錯誤與警告消息涵蓋範圍非常廣,從洞察性極強到一般性提示再到完全誤導人。很多時候,你知道某行代碼有問題,不過Swift編譯器卻不會清晰地告訴你什麼地方出錯了,甚至連是哪行都不會告訴你。對於這些情況,我的建議是將可能有問題的代碼行放到簡單的代碼塊中,直到發現問題所在位置。雖然提示消息有時起不到幫助作用,不過請保持與編譯器的親密接觸吧。請記住,雖然編譯器有時無法準確地進行描述,但它知道的一定比你多。