初学 GO,发现语法很简约
· Go
Go
最近在学习 Go 语言,它的语法非常简约。
比如下面的代码:
go func() {
defer func() {
if err := recover(); err != nil {
ro.Logger.Error("asset maintainer error:", err)
}
}()
// 这里是业务逻辑
}
在了解语法后,我发现他的语法相对于 JS 来说是很简化的
- 第一个就是他甚至连 function 都懒得写全…😅
- 也有类似于 JS 的立即执行函数 func() {…}。
- if 并声明+赋值,把两行代码合并成一行了(JS 也可以在 if 中赋值但是不能在 if 中声明)。
- err: 就等同于 JS 的 let err = recover()。(这是 let 都懒得写了😅)。
JS
如果上面的代码在 JS 中 1:1 还原可能是这样的:
;(async () => {
;(() => {
const err = maybeThrow() // 模拟 recover 场景
if (err) {
logger.error('asset maintainer error:', err)
}
})()
/// 这里是其他代码逻辑
})()