下面这段代码会输出什么

func test(i int) (ret int) {
	ret = i * 2
	if ret > 10 {
		ret := 10
		return
	}
	return
}
func main() {
	result := test(10)
	fmt.Println(result)
}

答案

编译错误

剖析

ret :=10 这行代码编译失利

GO每日一题(6)

详细原因是因为这一行代码重新界说了一个变量ret,但是没有用到。这里的ret跟回来值不一样,是2个变量,go中界说的变量假如没有用到则编译失利。假如把ret回来则编译成功。

func test(i int) (ret int) {
	ret = i * 2
	if ret > 10 {
		ret := 10
		return ret
	}
	return
}
func main() {
	result := test(10)
	fmt.Println(result)
}

这个标题主要调查变量作用于问题。你做对了吗?

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。