停課學寫 Game?跟雞丁用 Swift Playground 3 分鐘速成!

撰文:蔡浩騰
出版:更新:

3 分鐘速成學寫App|上兩次學會了 Swift 當中的一些編程入門技巧、邏輯,在再進深一步之前,我們就再來了解一下 Swift 這種編程語言的重要特性 -(Object-Oriented)物件導向,方便我們往後用以寫 Apps 時可以更事半功倍。

前文重溫

點按前往>>第二集:跟YouTuber雞丁學寫Swift:「條件」與「變數」的邏輯運用

點按前往>>第一集:跟YouTuber雞丁學寫Swift:Apple免費編程10分鐘入門

先重溫前兩集跟雞丁學寫App影片

第一集:Apple免費編程10分鐘入門

第二集:「條件」與「變數」的邏輯運用

連 Steve Jobs 都推崇的「物件導向編程」

Object Oriented Programming(OOP)是近代絕大多數新編程語言都會採用的設計概念,意在將程序中的各個部份寫成「物件」獨立處理、就像一個個小機器/小程序一樣。

Apple 創辦人 Steve Jobs 1994 年時曾經在一次訪問中親自解釋過 OOP 的編程概念,他指出「Objects 就像活生生的人,他們知道如何做事、也有記憶能力……所有複雜性都隱藏在內部,讓我們可以十分抽象地與之交流。」

1994 年時候的 Steve Jobs 尚未回歸 Apple,而是以 NeXT Computer 創辦人身分在科技界打拼,後來旗下的 NeXT Software 開發出物件導向的開發工具 WebObjects,成為他重返 Apple 核心的契機(圖 Rolling Stone)

Steve Jobs 又用一個例子再進一步解釋了 OOP 的概念:「假設我現在是一個洗衣服的 Object,你只需要將髒衣服交給我,我就會將一件乾淨的衣服交到你手上,而我過程中先搭的士到三藩市、洗衣、再搭車回程等等…你是完全不需要理會。」

與傳統以多個函數組成的電腦編程不一樣,以 OOP 作主軸設計的編程語言由於可以將程序分拆,於維護、修改、學習方面都有莫大助益。

Types (類型/型別)

Swift 當中的「物件」有很多種,其中之一個在較初學階段就會接觸到的就是 Types,(用中文講就是「類型」或是「型別」,但其實這兩種譯法都不算太過貼切),Swift Playground 的簡介中就將之比喻成一個物件建造的「藍圖」。

一個 Types 內,會有不同的屬性(Property)、亦即是其專屬的變數(Variables),例如一間綠色、擁有兩間睡房的「房子」,以 Swift 的程式碼寫出來就是:

var color = green
var bedrooms = 2

在 Property 之外,Types 亦有不同的 Methods,其實亦即一些在 Types 內定義的函數(Functions),就如一間屋入面就有流水、可以開燈,名字可以任意定作 runWater()、turnLightsOn() 等等,而當中封裝的指令就任由編寫人定義了。

在 Swift Playground 的首個範例中,圖中綠色的傳送門亦即為 greenPortal 的 Type,而其中的 Property 就是 isActive,只要將這個 Property,亦即 greenPortal.isActive 設定做「true」,就可以將之開啟,而設定做「false」,就將之關閉。

如果此傳送門開啟,機械人就不能前進並打開其他三個開關,所以此處我們在程序的第一句就要輸入 greenPortal.isActive = false

建構個人化的「包剪揼」

透過掌握不同的物件,我們就可以於既有的框架之上輕易地擴充、更改原有的程序。於 Swift Playground 內的「剪刀、石頭、布」範例,就容許我們嘗試以僅僅一句程式碼去為自己添加對手數量、自己可以打出的選項等等。

可以在包、剪、揼以外加入額外的新選項
由於是完全獨立的「物件」,每個新「選手」的加入都不會影響遊戲的玩法

Swift 與 Swift Playground 的無限可能

跟 YouTuber 雞丁學以 Swift Playground 寫 Swift 語言的時間不長,只短短一天的時間,但也可以感受到 Apple 在培養 Swift 社群方面所下的心機,Swift 本身的邏輯與編程用語都比從前的語言更為簡化,而 Swift Playground 則成為一個極佳的入門門檻供初學者學懂一些基本的編程概念。

一些比較有吸引力的遊戲編程,需要更強大的 Swift 知識基礎,某程度上成為了我們繼續進深 Swift 的助力(圖 Swift Playground)

作為一個可以用來寫出完整 App 的語言,短短三回的教學與分享,其實可以轉達的就只有 Swift 的皮毛,幸而 Swift Playground 的費用全免,只要有一部 iPad 都可以下載並隨時學習。