既然 golang 到处都是 if err != nil ,为啥不能从语法层面把这句话当做默认值?

2025-06-25 00:00:16

不需要从语法层面当作默认值, 你可以自己实现一个包装层来自动插入这种代码. 不过, 这种方法对目前的Go语言行不通, 我们需要增加了三种新特性的Extended Go: 方法支持泛型;可以给非本地类型增加方法;多返回值是第一类值, 可以被传递.第二种类型有些tricky, 涉及到接口和包冲突等问题. 我们先不考虑这些. 下面我们给出自动插入错误处理的代码: func (rslt T, err error) Bind[T any, U any](f func(T) (U, error)) (U, error) { …。

既然 golang 到处都是 if err != nil ,为啥不能从语法层面把这句话当做默认值?