Swift - 基本语法
如果 Swift 安装成功,将显示最新的 Swift 版本。Swift 是一种强大且富有表现力的语言,用于为 Apple 设备开发应用程序。它设计得易于阅读、编写和维护。它还支持面向对象和函数式编程范式。
语法
它的语法更加清晰、简洁且易于阅读。现在让我们来看看 Swift 程序的基本结构,这样你就能轻松理解 Swift 编程语言的基本构建模块。
/* 我的第一个 Swift 程序 */ var myString = "Hello, World!" print(myString)
以上程序的输出如下 −
Hello, World!
现在让我们学习基本的语法以及如何在你的 Swift 程序中使用它们。
Import 语句
你可以使用 import 语句将任何 Objective-C framework 或 C library 或 Swift library 直接导入到你的 Swift 程序中。例如,import cocoa 语句会使所有构成 OS X 开发层的 Cocoa library、API 和 runtime 在 Swift 中可用。Cocoa 是用 Objective-C 实现的,而 Objective-C 是 C 的超集,因此可以将 C 甚至 C++ 轻松混入你的 Swift 应用程序中。
语法
以下是 import 语句的语法 −
import frameworkName or LibraryName
示例
import Foundation
Tokens
Swift 程序由各种 tokens 组成。token 是程序的最小单元,用于构建 Swift 程序的块。它们可以是关键字、标识符、常量、字符串字面量或符号。
示例
Swift 程序演示 tokens 的使用。此程序包含 10 个 tokens,例如 import、Foundation、var、myString 等。
import Foundation var myString = 34 print(myString)
输出
34
分号
在 Swift 中,每个语句后的分号是可选的。是否在代码的每个语句后输入分号(;)完全取决于你,编译器不会对此抱怨。
但是,如果你在同一行使用多个语句,则必须使用分号作为分隔符,否则编译器将引发语法错误。
示例
Swift 程序演示在单行中使用分号。
// 使用分号分隔多个语句 var myString = "Hello, World!"; print(myString)
输出
Hello, World!
标识符
Swift 标识符是用于标识变量、function 或任何其他用户定义项的名称。标识符名称必须以字母 A 到 Z 或 a 到 z 或下划线 _ 开头,后跟零个或多个字母、下划线和数字(0 到 9)。
Swift 不允许在标识符中使用特殊字符,如 @、$ 和 % 。Swift 是一种 区分大小写 的编程语言,因此 Manpower 和 manpower 在 Swift 中是两个不同的标识符。
示例
以下是一些有效的 Swift 标识符 −
Azad zara abc move_name a_123 myname50 _temp j a23b9 retVal
关键字
关键字是 Swift 中可用的特殊预定义单词,具有特殊的含义和功能。它们也被称为保留字。这些保留字不能用作常量、变量或任何其他标识符名称,除非使用反引号 (`) 转义。
例如,class 不是有效的标识符,但 `class` 是有效的。它们通常用于定义程序的结构和行为。Swift 支持以下关键字 −
声明中使用的关键字
以下是在声明中使用的关键字
| Class | deinit | Enum | extension |
| Func | import | Init | internal |
| Let | operator | private | protocol |
| public | static | struct | subscript |
| typealias | var |
语句中使用的关键字
以下是在语句中使用的关键字
| break | case | continue | default |
| do | else | fallthrough | for |
| if | in | return | switch |
| where | while |
表达式和类型中使用的关键字
以下是在表达式和类型中使用的关键字
| as | dynamicType | false | is |
| nil | self | Self | super |
| true | _COLUMN_ | _FILE_ | _FUNCTION_ |
| _LINE_ |
特定上下文中使用的关键字
以下是在特定上下文中使用的关键字
| associativity | convenience | dynamic | didSet |
| final | get | infix | inout |
| lazy | left | mutating | none |
| nonmutating | optional | override | postfix |
| precedence | prefix | Protocol | required |
| right | set | Type | unowned |
| weak | willSet |
空白字符
在 Swift 中,空白字符是指空格、制表符、换行符和注释。空白字符将语句的一个部分与其他部分分隔开,并使编译器能够识别语句中一个元素(如 int)的结束位置以及下一个元素的开始位置。因此,在以下语句中 −
var age
var 和 age 之间必须至少有一个空白字符(通常是空格),以便编译器能够区分它们。另一方面,在以下语句中:
//获取总水果数量 int fruit = apples + oranges
fruit 和 = 之间,或者 = 和 apples 之间不需要空白字符,尽管为了更好的可读性,你可以自由添加一些。
操作符两侧的空格应保持一致,例如 −
int fruit= apples +oranges //这是一个错误的语句 int fruit = apples + oranges //这是一个正确的语句
字面量
字面量是整数、浮点数或字符串类型值的源代码表示。或者可以说,字面量是直接写在源代码中的实际值。Swift 支持 integer literals、floating-point literals、String literals、boolean literals 等。
示例
以下是字面量的示例 −
92 // Integer literal 4.24159 // Floating-point literal "Hello, World!" // String literal
Swift 中的打印
在 Swift 中,你可以使用 print() 函数将任何内容打印到控制台。这是 Swift 语言中最有用的函数。它还可以打印文件、函数和行号。
语法
以下是 print() 函数的语法 −
func print(_element: Any, Sep: String = , Terminator: String = \n)
参数
该函数仅接受三个可选参数 −
Element − 这是我们想要打印到控制台输出的元素。可以是零个或多个。
Sep − 表示将显示在每个元素之间的字符串。默认值是一个空格。
Terminator − 表示在所有元素之后打印的字符串。默认值是一个换行符。我们可以根据需求提供自定义的分隔符和终止符。
示例
Swift 程序演示如何使用 print() 函数打印文本。
import Foundation
// 打印文本
print("Learn Swift!")
// 打印变量
var x = 10
var y = 23
print("[\(x) and \(y)]")
// 使用 terminator 打印文本
print("Swift, Programming Language", terminator: "*")
print("Swift Programming Language")
输出
Learn Swift! [10 and 23] Swift, Programming Language*Swift Programming Language
条件语句
条件语句允许您根据特定条件执行代码。
示例
Swift 程序根据年龄检查某人是否有投票资格。
import Foundation
let age = 20
if age >= 18 {
print("You are eligible to vote.")
} else {
print("You are not eligible to vote.")
}
输出
You are eligible to vote.
循环结构
循环用于多次重复执行代码块。Swift 的循环包括 for-in、while 和 repeat-while。
示例
使用 for-in 循环打印 5 名员工姓名的 Swift 程序:
import Foundation
let employees = ["Sudhir", "Yash", "Ravi", "Alshifa", "Akansha"]
for name in employees {
print("Employee: \(name)")
}
输出
Employee: Sudhir Employee: Yash Employee: Ravi Employee: Alshifa Employee: Akansha
数组
数组用于存储同一类型的多个值。您可以通过显式指定数组类型来创建数组。
示例
使用数组存储并显示不同水果价格的 Swift 程序。
import Foundation
var fruitPrices = [30, 50, 40, 20]
// Print second fruit's price
print("Price of second fruit: \(fruitPrices[1])")
// Add a new price
fruitPrices.append(60)
// Display all prices
for price in fruitPrices {
print("Fruit Price: \(price)")
}
输出
Price of second fruit: 50 Fruit Price: 30 Fruit Price: 50 Fruit Price: 40 Fruit Price: 20 Fruit Price: 60
结构体
结构体是值类型,用于将相关的属性和方法组合在一起。结构体使用 "struct" 关键字创建,包含属性(与结构体关联的常量和变量)和方法(与结构体关联的函数)。
示例
使用 struct 创建 Book 结构体的 Swift 程序:
import Foundation
struct Book {
var title: String
var author: String
func description() {
print("'\(title)' by \(author)")
}
}
let book1 = Book(title: "The Swift Programming Language", author: "Apple Inc.")
book1.description()
输出
'The Swift Programming Language' by Apple Inc.
类
类是引用类型并支持继承。类使用 "class" 关键字创建,包含属性(类的常量和变量)、方法(与类关联的函数)和初始化器(用于设置类实例初始状态的特殊方法)。
示例
使用 class 建模 Car 并演示继承的 Swift 程序。
import Foundation
class Vehicle {
var brand: String
init(brand: String) {
self.brand = brand
}
func honk() {
print("\(brand) makes a sound")
}
}
class Car: Vehicle {
override func honk() {
print("\(brand) honks: Beep Beep!")
}
}
let myCar = Car(brand: "Toyota")
myCar.honk()
输出
Toyota honks: Beep Beep!