Swift由Apple于2014年发布,替代Objective-C成为Apple平台(iOS、macOS、watchOS、tvOS)的主要开发语言。
// Swift代码示例
// 结构体和类
struct Point {
var x: Double
var y: Double
func distance(to other: Point) -> Double {
sqrt(pow(x - other.x, 2) + pow(y - other.y, 2))
}
}
// 协议和扩展
protocol Shape {
var area: Double { get }
}
struct Circle: Shape {
let radius: Double
var area: Double { .pi * radius * radius }
}
// 扩展:为现有类型添加方法
extension String {
var isEmail: Bool {
contains("@") && contains(".")
}
}
// 可选类型和可选绑定
func greet(name: String?) -> String {
guard let name = name, !name.isEmpty else {
return "Hello, stranger!"
}
return "Hello, \(name)!"
}
// 闭包和高阶函数
let numbers = [1, 5, 10, 15, 20]
let evenSquares = numbers
.filter { $0 % 2 == 0 }
.map { $0 * $0 }
// 并发(Swift 5.5+)
func fetchData() async throws -> String {
try await Task.sleep(nanoseconds: 1_000_000_000)
return "Data"
}
// @MainActor确保UI更新在主线程
@MainActor
class ViewModel: ObservableObject {
@Published var data: String = ""
func load() async {
do {
data = try await fetchData()
} catch {
data = "Error: \(error)"
}
}
}
// Result类型处理错误
enum NetworkError: Error {
case invalidURL
case noData
}
func makeRequest(_ url: String) -> Result<String, NetworkError> {
guard url.hasPrefix("https://") else {
return .failure(.invalidURL)
}
return .success("Response from \(url)")
}
Swift的特点: