GoLang 语言 if 条件判断中定义和赋值的变量是临时变量

臭大佬 2022-04-16 00:56:15 553
Go 
简介 GoLang 语言 if 条件判断中定义和赋值的变量是临时变量,在外部是无法访问的。

问题

本来想优化一下代码,写法如下:

if page, err := art.GetInt("page"); err != nil {
page = 1
}
limit, err := art.GetInt("limit")

offset := (page - 1) * limit

编辑器提示page变量存在异常,在执行过程中也会报错,百思不得其解,查资料后才知道,原来啊,if 条件中的变量是临时的,值存在于当前 if esle语句内,外部是读取不到的。