函数参数中的默认值
为参数提供默认值,简化调用位置。
函数参数中的默认值 是 CoddyKit 上的免费 Swift Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Swift Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Swift Academy 课程共包含 4 节课。
什么是默认参数
函数参数可以拥有默认值。调用方可以省略该参数,Swift 会自动填入默认值。
func greet(name: String = "Guest") {
print("Hello, \(name)")
}
greet()
greet(name: "Ada")声明默认值
在参数类型后使用 = 指定默认值。只有调用方没有传入该参数时,才会使用默认值。
func power(base: Int, exponent: Int = 2) -> Int {
var result = 1
for _ in 0..<exponent { result *= base }
return result
}
print(power(base: 5))
print(power(base: 5, exponent: 3))多个默认值
您可以为多个参数提供默认值。调用方只需覆盖自己关心的参数。
func makeBox(width: Int = 1, height: Int = 1) -> Int {
return width * height
}
print(makeBox())
print(makeBox(width: 4))混合必需参数和默认参数
必需参数没有默认值,而默认参数有默认值。请将必需参数放在前面,这样调用方就能方便地省略末尾的默认参数。
func send(message: String, urgent: Bool = false) {
print("\(urgent ? "URGENT: " : "")\(message)")
}
send(message: "Hi")
send(message: "Fire!", urgent: true)默认值可以减少重载
在有默认参数之前,您可能需要编写多个重载函数。一个带有默认值的函数就可以替代它们。
func connect(host: String, port: Int = 80) {
print("\(host):\(port)")
}
connect(host: "example.com")
connect(host: "example.com", port: 8080)覆盖任意一部分默认值
只要使用参数标签明确指定,您就可以覆盖一个默认值,同时保留其他默认值。
func style(size: Int = 12, bold: Bool = false, italic: Bool = false) {
print("\(size) bold:\(bold) italic:\(italic)")
}
style(bold: true)默认值可以是表达式
默认值可以是符合类型要求的任意表达式,并且会在省略参数时求值。
func now(stamp: Int = 1000 + 1) {
print(stamp)
}
now()
now(stamp: 5)可选参数的默认值
一种常见模式是让可选参数默认为 nil,这样调用方就可以完全省略它。
func log(_ text: String, tag: String? = nil) {
print("[\(tag ?? "general")] \(text)")
}
log("Started")
log("Saved", tag: "db")与空值合并结合使用
默认参数和 ?? 配合使用效果很好:接受一个可选值,然后在函数体内进行合并。
func price(amount: Int? = nil) -> Int {
return amount ?? 10
}
print(price())
print(price(amount: 25))初始化器中的默认值
结构体初始化器也支持这一功能,因此您可以使用合理的默认值创建对象。
struct Settings {
var volume: Int
init(volume: Int = 50) {
self.volume = volume
}
}
print(Settings().volume)
print(Settings(volume: 80).volume)可读性方面的好处
默认参数可以缩短调用位置并表达常见用法,同时在需要时仍允许完全控制。
func repeatText(_ text: String, times: Int = 1) {
for _ in 0..<times { print(text) }
}
repeatText("Hi")
repeatText("Yo", times: 2)快速检查
测试默认参数。
回顾:函数参数中的默认值
默认参数值允许调用方省略参数。在类型后使用 = 声明默认值,将它们与必需参数混合使用,并与 ?? 或可选值搭配,从而构建灵活的接口。
func tax(amount: Int, rate: Int = 10) -> Int {
return amount + amount * rate / 100
}
print(tax(amount: 100))常见问题解答
「函数参数中的默认值」课时是免费的吗?
是的 — 「函数参数中的默认值」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Swift Academy 课程的其余内容,请升级到 CoddyKit PRO。 Swift Academy 课程共包含 4 节课。
「函数参数中的默认值」这节课中我会学到什么?
为参数提供默认值,简化调用位置。 你通过在浏览器中直接运行的动手代码来练习 Swift Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Swift Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Swift Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「函数参数中的默认值」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Swift Academy 课中编写并运行代码吗?
能。每节 Swift Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。