欢迎关注微信公众号「Swift 花园」

创建你自己的类

Swift 的类也能让你创建带有属性和方法的新类型,这一点和结构体很相似,但是它们之间有五个显著的区别。下面让我一一为你说明。

类和结构体的第一个区别是类没有逐一成员构造器。这意味着只要你的类里有属性,你就必须自行创建构造器。

举个例子:

1
2
3
4
5
6
7
8
9
class Dog {
var name: String
var breed: String

init(name: String, breed: String) {
self.name = name
self.breed = breed
}
}

创建类的实例跟创建结构体的实例方式一样:

1
let poppy = Dog(name: "Poppy", breed: "Poodle")
阅读全文 »

欢迎关注微信公众号「Swift 花园」

创建你自己的结构体

Swift 允许你用两种方式创建自己的类型。其中一种最常见的叫做结构体,即 struct 。Struct 可以拥有自己的变量、常量以及函数,而你可以在任意时候创建和使用它们。

让我们以一个简单的例子开始:创建一个 Sport 结构体,它有一个叫 name 的字符串变量。在结构体中,这种变量被称为 属性 。因此,这是一个拥有一个属性的结构体。

1
2
3
struct Sport {
var name: String
}

类型定义完成,现在让我们来创建和使用它的实例:

1
2
var tennis = Sport(name: "Tennis")
print(tennis.name)

nametennis 都是变量,因而我们可以像常规变量那样修改它们:

1
tennis.name = "Lawn tennis"

属性可以像常规变量那样拥有默认值,并且依赖 Swift 的类型推断。

阅读全文 »

欢迎关注微信公众号「Swift 花园」

创建基本的闭包

Swift 允许我们像字符串和整数一样使用函数。具体来说,你可以创建一个函数然后把它赋给一个变量,利用那个变量来调用函数。你甚至可以把函数作为参数传给另一个函数。

函数的这种用法被称为 闭包 。虽然工作机制差不多,写法上是有一些小差异的。

还是以打印信息为例:

1
2
3
let driving = {
print(" 我要去开车 & quot;)
}

上面的代码实际上创建了一个匿名的函数,并将这个函数赋给了 driving 。之后你就可以把 driving () 当作一个常规的函数来用,就像这样:

1
driving ()
阅读全文 »

欢迎关注微信公众号「Swift 花园」

书写函数

函数让我们可以重用代码。这句话的具体含义是,我们写一次函数,在多个地方使用。书写重复的代码,通常来说不是一种好的实践,而函数帮助我们避免重复代码。

用一个简单的例子开始吧。假设我们要为 app 的用户提供帮助信息,这个动作在 app 里的多个地方都会用到。因此,把打印帮助信息这个逻辑写成一个函数就是个好主意。

Swift 的函数以 func 关键字开始,然后跟着函数名,然后是一对圆括号,最后是一对花括号。当函数被运行时,花括号里的代码会被执行。

一个 printHelp () 函数长这样:

1
2
3
4
5
6
7
8
func printHelp() {
let message = """
欢迎来到我的 App!
在一个图片的目录下运行这个 App,
它会把所有的图片缩放成缩略图。
"""
print(message)
}

然后我们用 printHelp () 来运行它。

1
printHelp ()

运行一个函数又被称为 调用 一个函数。

阅读全文 »

欢迎关注微信公众号「Swift 花园」

For 循环

Swift 有很多种书写循环的方式,它们底层的机制是相同的:重复执行某段代码直到某个条件不再满足。

最常见的循环是 for 循环:它在数组和范围上循环,每次拉出一个值然后把它赋予一个常量。

举个例子,这里是一个数字的范围:

1
let count = 1...10

我们可以用一个 for 循环打印里面的每一个值,就像这样:

1
2
3
for number in count {
print(" 数字是 \(number)")
}

数组的操作方式也一样:

1
2
3
4
let albums = ["Red", "1989", "Reputation"]
for album in albums {
print("\(album) 在 Apple Music 上有售卖。")
}

如果你不需要用到 for 循环提供给你的常量,你可以用下划线替代,这样 Swift 就会忽略这个你没有用到的值:

1
2
3
for _ in 1...5 {
print("Zzz...")
}
阅读全文 »