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

Swift报错Variable 'str' used before being initialized 倒计时函数实现问题

错误原因
  • Swift 为保证类型安全,强制要求所有变量在使用前必须完成初始化。你仅声明了str的类型为String,没有给它赋初始值,编译器无法确认该变量在返回前一定能被赋值:如果传入的参数是负数,while循环的判断条件一开始就不成立,代码会直接走到return str的逻辑,此时str处于未初始化的状态,因此会抛出该错误。
  • 除此之外你现有的逻辑也不符合功能要求:循环内每次都会用新的数字覆盖str的值,最终返回的只会是最后一次赋值的"0",不是全部数字用空格分隔的完整字符串。
修复方案
func countDown(_ number: Int) -> String {
    var n = number
    // 初始化空字符串用来拼接结果
    var str = ""
    while n >= 0 {
        let numStr = String(n)
        // 拼接当前数字和分隔空格
        str += numStr + " "
        print(numStr, terminator: " ")
        n -= 1
    }
    // 去掉末尾多余的空格后返回
    return str.trimmingCharacters(in: .whitespaces)
}
var numbersAsString: String = countDown(5)
// 可打印返回值验证结果
print("\n返回的字符串为:\(numbersAsString)")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:39:03