今天在看代码的时候,给已有代码添加 defer ,但是加上代码确实难看,所以突发奇想就把 defer 放在了定义的后面,如下。不知道写这里是否合适
ctx, cancel := context.WithTimeout(); defer cancel()
1 nativeBoy OP 好吧,go fmt 自动给我换行了 |
![]() | 2 guanzhangzhang 324 天前 |
![]() | 3 loading 324 天前 我还以为你是问 defer 是不是放 err!=nil 后面,没想到你甚至都没保存。 vscode 设置保存后格式化,你基本不会问这个问题。 |
4 yqs112358 323 天前 这个其实无所谓,看习惯了就好。go 的哲学跟其他语言还是有一定区别的,上手得熟悉一段时间 |
5 yqs112358 323 天前 个人其实更喜欢 C++那套 RAII 的玩意儿,由库作者负责保证资源的安全释放。go 虽然不太用这种不过 defer 也不失为一种好方法,至少比到处塞满 if 要好很多 |
![]() | 6 uid106 307 天前 via iPhone 一顿随便写,之后 gofmt -s -w . 板板正正的 |