此文集是我系統(tǒng)復(fù)習(xí)和梳理這兩門編程語言(Swift 3、C++11)知識的文章集合,這是這個集合中發(fā)布的第一篇文章。
約定
- 標(biāo)點符號
此文集中的部分標(biāo)點符號將會是英文半角下的標(biāo)點符號——為了節(jié)省代碼和漢語之間的頻繁切換的時間。當(dāng)然,我會盡量使用中文的標(biāo)點符號,也盡量避免使用錯誤的標(biāo)點符號。
- 編程語言版本
在文集中所有地方提到 Swift 和 C++以及對應(yīng)的實例代碼, 均屬于 Swift 3 和 C++11。
- IDE
Xcode8:文中的Swift代碼和 C++代碼保證在Xcode8中能夠成功編譯、運行。
Visual Studio 2013: 必要的時候會在 Windows 平臺上選擇的是Visual Studio 2013運行 C++代碼
實例代碼
絕大部分示例代碼將是Swift和C++代碼,偶爾可能出現(xiàn)其他編程語言的代碼(它們可能將會是:C、Objective-C、C#、PHP代碼——誰知道呢,說不定那天大腦一轉(zhuǎn)就寫上了,但即使如此,這些代碼的作用僅僅是為了提供必要的例證)。知識范圍
將主要總結(jié)、歸納、對比Swift和C++語言的語法知識(這是我的基礎(chǔ)目標(biāo))——但不限于此。
文集目標(biāo)
基礎(chǔ)目標(biāo)
總結(jié)、歸納、對比Swift和C++語言的語法知識以使我達到溫習(xí)和梳理相關(guān)知識的目的。二級目標(biāo)
使本文集成為Swift和C++入門者的在線入門級教程。因此,針對這些初學(xué)者,我將在每一篇文章中給出一些練習(xí)題以供練習(xí)。三級目標(biāo)
使本文集能夠成為那些從一無所知的小白到初級Swift和C++開發(fā)人員這一過程中的有力助手。
為此,我將會在必要的時候,在進入下一部份知識之前提供一個實戰(zhàn)項目來進行講解,如此必然要加入其他新的知識,比如Win32,Cocoa Touch等。實戰(zhàn)項目將會分別是iOS app項目和C++游戲項目——不得不說這將是一個有趣的挑戰(zhàn),不是嘛?尤其是游戲。
目標(biāo)讀者
雖說 Swift 和 C++ 或者其他任何編程語言(例如: C、Objective-C、C#,Java、Swift等)的大多數(shù)入門書籍都不要求讀者有任何編程基礎(chǔ),但是我仍然希望閱讀本文集的讀者最好有一定的編程基礎(chǔ),比如有一些C語言的基礎(chǔ)(理解函數(shù)、指針),最好最好的有實際的編程工作經(jīng)驗。
原因:
現(xiàn)代的編程語言大多繼承了大部分舊時代編程語言的優(yōu)點而舍棄其缺點。
正如我們所知道的,常見的Objective-C、C#、C++、Java、Swift都是從C語言發(fā)展而來,他們稱之為C系語言(C-family語言列表:List of C-family programming languages),那么對于要學(xué)習(xí) Swift 和 C++來說,有C語言背景能對您有一個強有力的幫助。編程更多時候是解決我們現(xiàn)實中的現(xiàn)實問題。
如果您有編程基礎(chǔ)或編程工作經(jīng)驗,則只要愿意花費一定的時間就很容易的掌握新的編程語言——作為有一定的編程基礎(chǔ)或編程工作經(jīng)驗的您,在某種程度上講,您已經(jīng)有足夠的耐心來接受新的未知的知識了。
話雖如此,如果您正好是一個零基礎(chǔ)小白的話,本文集將仍然適合您閱讀學(xué)習(xí)——它只有一點點的要求:勤于練習(xí)編寫程序。
對于小白來說,不斷的練習(xí)編寫程序的目的是:記憶語法和鍛煉邏輯思維。很多人覺得記住一個東西是靠腦袋,但是奇怪的是,對于程序員來說記憶一個關(guān)鍵詞、一個語句,一個函數(shù)、方法,卻是用十個手指來記憶的。
對小白來說的另外一個好消息就是:編程所需要的邏輯思維跟編程語言無關(guān),也就是說一旦您在這方面所做出的任何一點提升,對任何編程語言來說都將是通用的——畢竟,怎樣解決問題(邏輯)與用什么工具來解決(編程語言)并沒有什么關(guān)系。
讀到這里,如果您是一個對編程一無所知的小白的話,您應(yīng)該已經(jīng)知道了編程的兩個訣竅:
1. 多寫程序
2. 善于思考
而對于那些深諳編程之道的讀者,您也將會在本文集中獲益。文集中不僅有Swift和C++的基礎(chǔ)語法和高級專題,而難得的是同時將兩門編程語言同時列入其內(nèi),Swift和C++面對面進行比對,從最簡單的“Hello,world!“到模版、泛型等高級專題逐一對應(yīng),將兩種語言的區(qū)別和聯(lián)系、優(yōu)勢和劣勢詳細(xì)剖析開來——這對我來說也是一個挑戰(zhàn),對已經(jīng)掌握相關(guān)知識的您來說,恐怕也是一次難得的重新溫習(xí)和系統(tǒng)梳理的機會。
引用
文中的引用絕大部分來自以下兩本書籍中,但不限于此:
-
《C++ Primer 中文版(第5版)》
《C++ Primer 中文版(第5版)》
-
The Swift Programming Language (Swift 3)英文原版
The Swift Programming Language (Swift 3)
發(fā)布與更新
我將不定時的發(fā)布新文章,不定時的修改已發(fā)布文章中的出現(xiàn)的錯誤、遺漏。
結(jié)束
好,話已說完,歡迎所有閱讀此文集的讀者。在閱讀的過程中如有任何疑問或意見敬請?zhí)岢鰜怼A硗猓倜茈y免會有一疏,有任何錯誤,懇請指正出來,好讓我有機會能夠彌補錯誤。