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

编写简单Swift结构体代码时触发signal SIGABRT错误,求排查方案

错误原因及修复方案

问题1:属性观察器中错误引用全局变量引发循环访问

在Game结构体的score属性didSet方法里,直接引用全局变量game.score会导致属性更新时触发对自身的重复访问,进而引发运行时SIGABRT异常。在结构体的属性观察器中,应通过self访问当前实例属性,或直接使用属性名即可。

问题2:使用中文全角引号导致语法错误

代码中print(“Score is now \(game.score)”)的引号是中文全角格式,Swift无法识别,这会引发编译或运行时错误,需替换为英文半角引号。

修复后的代码

import Cocoa

struct Game {
    var score = 0 {
        didSet {
            print("Score is now \(score)")
        }
    }
}

var game = Game()
game.score += 10
game.score -= 3
game.score += 1

print(game.score)

运行后输出结果:

Score is now 10
Score is now 7
Score is now 8
8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 23:52:46