使用oklog/run遇Go编译错误:(no value) used as value 求助
问题分析与解决
错误本质
你遇到的编译错误log.Errorf("abnormal termination: %s", err) (no value) used as value是语法错误,和run.Group.Run()的返回逻辑无关。核心原因:
log.Errorf()函数无返回值(返回类型为void)main()函数本身不需要返回值,你试图用return返回一个无返回值的函数调用,违反了Go的语法规则
修复方案
将代码中错误的代码块修改为:
if err := group.Run(); !errors.As(err, &run.SignalError{}) { log.Errorf("abnormal termination: %s", err) return // 单独写return,main函数不需要返回值 }
关于你的疑惑
run.Group.Run()确实会在所有actor退出后返回第一个退出的actor的错误,err是必然存在的,你的问题和这个运行时逻辑无关,纯粹是语法层面的问题。
内容的提问来源于stack exchange,提问作者Andrew Smith
相关产品推荐
相关产品推荐

