Swift

Swift 是一种强大直观的编程语言,适用于所有 Apple 平台。Swift 语法简洁但表现力强,更包含了深受喜爱的现代功能,可轻松上手使用。Swift 代码从设计上保证安全,并能开发出运行快如闪电的软件。

了解 Swift

表现力强

Swift 语法简明而富有表现力,可帮助新手开发者快速掌握核心编程概念。再加上"使用 Swift 开发"教程Swift Coding ClubSwift Playground 等资源的助力,你可轻松上手 Swift 这门编程语言,放心迈出编程第一步。

进一步了解 Apple 的 Swift 教育资源


资深开发者也能快速适应并充分利用 Swift 的强大功能与安全性,同时自如应用其他编程语言中常用的现代功能。

struct Player {
	var name: String
	var highScore: Int = 0
	var history: [Int] = []
	
	init(_ name: String) {
		self.name = name
		}
}

var player = Player("Tomas")

使用现代、简明的语法声明新类型,为实例属性提供默认值,并定义自定构造器。

extension Player {
mutating func updateScore(_ newScore: Int) {
	history.append(newScore)
	if highScore < newScore {
		print("\(newScore)! A new high score for \(name)! 🎉")
		highScore = newScore
	}
}
}

player.updateScore(50)
// Prints "50! A new high score for Tomas! 🎉"
// player.highScore == 50

使用 extension 向现有类型添加功能,并利用自定字符串转译减少样板代码。

let players = getPlayers()
// Sort players, with best high scores first
let ranked = players.sorted(by: { player1, player2 in
	player1.highScore > player2.highScore
})
// Create an array with only the players' names
let rankedNames = ranked.map { $0.name }
// ["Erin", "Rosana", "Tomas"]

使用简化闭包执行强大的自定转换。

extension Player: Codable, Equatable {}

import Foundation

let encoder = JSONEncoder()
try encoder.encode(player)
print(player)
// Prints "Player(name: "Tomas", highScore: 50, history: [50])"

充分利用强大的语言功能,以便快速扩展自定类型,如自动 JSON 编码和解码。

安全

Swift 可避免全部类型的不安全代码。变量在使用前始终会先进行初始化,数组和整数将进行溢出检查,内存将实现自动管理,潜在的数据争用也将能在编译时被发现。此外,Swift 充分利用值类型,特别是针对 Array 和 Dictionary 等常用类型。这让你在拷贝这种类型的内容时,能放心它不会在其他位置被修改。

Swift 还提供了一种安全的方法来处理代码中的缺失值。借助可选值,你能以显式方式声明某个值可能是缺失的 (nil)。此外,借助 if letguard let?? 等语法,你可以在尝试返回值之前安全地检查这些值,从而避免因返回 nil 值而导致的意外错误或程序崩溃。

if let bestPlayer =players.highestScoringPlayer() {
	recordHolder ="""
		The record holder is \(bestPlayer.name),\
		with a high score of \(bestPlayer.highScore)!
		"""
}else {
	recordHolder ="No games have been played yet."
}
print(recordHolder)
// The record holder is Erin, with a high score of 271!

let highestScore =players.highestScoringPlayer()?.highScore ??0
// highestScore == 271

凭借可选类型绑定、可选链和 nil 合并等功能,你可以安全、高效地使用可选类型值。

快速

最初构思时,我们就希望 Swift 实现快速运行的效果。利用出色的高性能 LLVM 编译器技术,Swift 代码会转换为经过优化的、可充分利用现代硬件的机器代码。此外,语法和标准资料库也进行了调整,使最浅显的编码方式也能有最佳表现,无论它是在你腕上的手表上运行,还是在集群服务器之间运行。并且,Swift 是继 C++ 之后的最优之选,它包括诸如类型、流控制和运算符等底层基元,并提供面向对象的特性,例如类、协议和泛型。

可互操作

你可以立即使用 Swift 创建全新的应用程序,或开始使用 Swift 代码在你的 App 中实现新的特性和功能。Swift 代码可与你的 Objective-C 和 C++ 文件在同一个项目中共存,并可访问 Objective-C 和 C++ API,让你能轻松地采用这些文件。

安全地混合使用 C、C ++ 和 Swift

通过 Swift-Java 互操作性项目,你可以将 Swift 代码直接引入到你的 Java 程序中,反之亦然。如此一来,你便能按照自己的节奏采用 Swift,并编写可在这两个运行时之间进行互操作的安全高效代码。

探索 Swift 和 Java 互操作性

灵活

Swift 不仅足够高效,可应用于嵌入式设备等资源受限环境;同时也足够强大,能够扩展至服务器乃至云基础设施。

进一步探索

探索专为助力 Swift 开发而构建的框架、工具和程序。

Swift 的开发采用开源形式。要进一步了解 Swift 开源项目和社区,请访问 Swift.org