Swift语法
## Swift 语言简介
Swift 是一种强大且直观的编程语言,由苹果公司于 2014 年推出。它是 Objective-C 的继任者,用于开发 iOS、macOS、watchOS 和 tvOS 应用程序。Swift 结合了 C 和 Objective-C 的优点,提供了更简洁的语法、更高的安全性和性能。
### 1. 基本语法
#### 变量声明
在 Swift 中,变量声明包括类型和值。例如:
```swift
var number: Int = 42
var name: String = "John Doe"
```
#### 数据类型
Swift 提供了多种数据类型,如整数、浮点数、布尔值、字符串和集合等。例如:
```swift
let age: Int = 30
let pi: Double = 3.14159
let isStudent: Bool = true
let hobbies: [String] = ["reading", "swimming"]
```
#### 控制流
Swift 支持多种控制流语句,如 if、else if、else、for-in、while 和 repeat-while 等。例如:
```swift
let number = 10
if number > 0 {
print("Positive")
} else if number < 0 {
print("Negative")
} else {
print("Zero")
}
for i in 1...5 {
print(i)
}
var counter = 0
while counter < 5 {
counter += 1
print(counter)
}
for hobby in hobbies {
print(hobby)
}
```
### 2. 函数
Swift 中的函数使用 `func` 关键字定义。例如:
```swift
func greet(name: String) {
print("Hello, \(name)!")
}
greet(name: "John Doe")
```
函数可以接受参数并返回值。例如:
```swift
func add(a: Int, b: Int) -> Int {
return a + b
}
let sum = add(a: 3, b: 5)
print(sum)
```
### 3. 类和对象
Swift 中的类是用于定义对象的蓝图。例如:
```swift
class Person {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
func greet() {
print("Hello, my name is \(name) and I am \(age) years old.")
}
}
let person = Person(name: "John Doe", age: 30)
person.greet()
```
### 4. 属性和方法
类和结构体可以拥有属性(变量)和方法。例如:
```swift
class Person {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
func greet() {
print("Hello, my name is \(name) and I am \(age) years old.")
}
func celebrateBirthday() {
age += 1
print("Happy birthday, \(name)! You are now \(age) years old.")
}
}
let person = Person(name: "John Doe", age: 30)
person.greet()
person.celebrateBirthday()
```
### 5. 错误处理
Swift 使用 do-catch 语句进行错误处理。例如:
```swift
func divide(a: Int, b: Int) -> Int? {
if b == 0 {
return nil
}
return a / b
}
if let result = divide(a: 10, b: 2) {
print("Result: \(result)")
} else {
print("Error: Division by zero")
}
```
### 6. 扩展
扩展允许在不修改原始类的情况下向现有类添加新功能。例如:
```swift
extension String {
func capitalizeFirstLetter() -> String {
return String(self.first! + self.dropFirst())
}
}
let greeting = "hello"
let capitalizedGreeting = greeting.capitalizeFirstLetter()
print(capitalizedGreeting) // 输出 "Hello"
```
### 7. 协程
Swift 通过引入协程支持异步编程。例如:
```swift
import Foundation
async func fetchData() {
let data = try await fetchFromNetwork()
print("Data fetched: \(data)")
}
func fetchFromNetwork() throws -> Data {
// Simulate network request
return Data()
}
DispatchQueue.main.async {
fetchData()
}
```
### 8. 类型推断
Swift 具有强大的类型推断能力,可以在许多情况下省略类型声明。例如:
```swift
let number = 42 // number 是 Int 类型
let greeting = "Hello, World!" // greeting 是 String 类型
```
### 9. 集合
Swift 提供了多种集合类型,如数组、字典和集合。例如:
```swift
let numbers: [Int] = [1, 2, 3, 4, 5]
let names: [String] = ["John", "Jane", "Doe"]
let uniqueNumbers = Set(numbers)
let uniqueNames = Set(names)
```
### 10. 接口和协议
Swift 使用接口和协议定义行为。例如:
```swift
protocol Animal {
func makeSound()
}
class Dog: Animal {
func makeSound() {
print("Woof!")
}
}
class Cat: Animal {
func makeSound() {
print("Meow!")
}
}
func playSound(animal: Animal) {
animal.makeSound()
}
let dog = Dog()
let cat = Cat()
playSound(animal: dog)
playSound(animal: cat)
```
总之,Swift 是一种功能强大、易于学习和使用的编程语言。它为开发高性能、安全的应用程序提供了坚实的基础。