You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift函数中如何正确检查可选参数?

关于Swift可选Bool参数的简洁写法

你的写法本身能正常运行,但存在冗余,而且有更贴合Swift风格的简洁实现方式,下面给你拆解说明:

1. 原写法的冗余问题

你写的if sample != nil, sample == true里,sample != nil完全是多余的——因为当sample为nil时,sample == true的结果本身就是false,所以整个条件等价于直接判断sample == true,没必要多做一次非空检查。

2. 更简洁的两种写法

写法一:直接判断可选值是否为true

func collectBuffers(sample: Bool?)  {
    // ...
    if sample == true {
        // 仅当sample为true时执行的逻辑
    }
}

这种写法最简洁,完全覆盖你原条件的逻辑:只有当sample被赋值为true时才进入分支,nil或false都不会触发。

写法二:可选绑定+布尔判断(适合需要使用解包后值的场景)

如果后续逻辑需要用到解包后的布尔值,用可选绑定的可读性更强:

func collectBuffers(sample: Bool?)  {
    // ...
    if let sampleValue = sample, sampleValue {
        // 这里可直接使用非可选的sampleValue
    }
}

这种写法先确保sample不为nil,再判断其值是否为true,避免了后续操作中处理可选值的麻烦。

额外建议:给可选参数加默认值

如果函数的大部分调用场景不需要传递sample参数,可以给它设置默认值,让调用更便捷:

func collectBuffers(sample: Bool? = nil)  {
    // ...
}
// 调用时可直接写 collectBuffers(),无需传sample参数

内容的提问来源于stack exchange,提问作者Bartender1382

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 20:34:51