Swift中最重要的自定义类型就是结构体和类,因为Swift提供的绝大部分基础类型都是结构体或者类,它们提供了很好的机制来为真实世界建模。从这节开始,本书从Playground进入project的世界,这是真正可以变成程序运行起来的世界。第2章中的第一个Xcode project是iOS的Single View App,这次改为macOS的Command Line Tool,而之后的流程和创建一个iOS应用相似,如图7.2.1所示:
图7.2.1 Command Line Tool
这个项目中只有一个main.swift文件,如下:
动手写7.2.1 StructPractise->main.swift
控制台输出如下:
打印了“Hello, World!”,还显示程序退出了,退出码为0。一般情况下,退出码为0意味着程序正常运行结束。
project已经建立,接着我们来认识一下结构体。结构体是把相关数据组合到一起的类型,存放在内存中。在本节中,读者会逐渐地建立起一个学校的模型,其中的实体会用结构体进行表达。首先我们要创建一个学校的swift文件,点击Xcode顶部按钮File→New→File...,选择Swift File,然后选择需要保存的位置,再命名为“School.swift”就可以了。如图7.2.2所示:
图7.2.2 新建一个Swift File
点击“School.swift”:
动手写7.2.2 StructPractise->School.swift
(www.xing528.com)
这时我们会发现里面除了一行“import Foundation”外就没有其他代码了,现在定义一个结构体名为:
关键字struct表示School是一个结构体类型的声明,其余与School相关的代码需要放在花括号“{}”之间。学校会有学生、老师和课程,可以通过给结构体中添加变量来存储这些数据。这些数据是结构体的属性(property),后文我们会有一节专门来讲属性。在Swift中属性可以是变量,也可以是常量。那么现在就为学校添加属性:
三个属性,分别代表学生、老师和课程的数量。回到main.swift中,创建一个school,里面有20000个学生、1000个老师和100门课程:
最后打印一下school,控制台输出如下:
我们会注意到,当定义了School结构体的同时,Xcode已经为它提供了init方法——构造函数,传入的参数有三个,就是School中的三个属性。这时我们依次输入三个属性的值即可,print函数会自动打出每个属性以及它的值。不过每次都要输入三个参数才能创建一个学校有点麻烦,这个时候可以给属性赋一个默认值:
这样可以使用一个简单的构造函数,即可创建一个学校:
运行结果如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。