编译器有时会删除“未使用的标识符”的调试信息。 调试信息可能会变得非常庞大,因此甚至在-O0级别,编译器也必须进行一些工作,以确保它们不会发出比所需更多的信息。 定义“所需”比说起来更棘手,但肯定应该保留所有本地变量和let变量。 因此,我认为这值得在Swift编译器上提交一个错误报告。 尤其奇怪的是,swiftc会为ny而不是nx发出调试信息。 你在函数中后面更多地使用了ny吗? 如果您要提交错误,请包括一个可构建的.swift文件或项目,以显示错误。