停课学写 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 都可以下载并随时学习。