
在 go 函数中,何时 return 返回值而直接 return
在 go 中,函数可以使用 return 语句来返回一个或多个值。然而,在某些情况下,函数可以直接使用 return 而避免显式返回返回值。
“return” 省略
来看看这个问题中提到的 split 函数:
func Split(s, sep string)(result []string) {
i := strings.Index(s, sep)
for i > -i {
result = append(result, s[:i])
s = s[i+1:]
i = strings.Index(s, sep)
}
result = append(result, s)
return
}此函数定义了返回值变量 result,但并没有在 return 语句中显式返回它。这是因为 go 函数可以将函数签名中指定的返回值变量直接返回,无需在 return 语句中显式引用它们。
可读性考虑
虽然这种省略 return 的语法是合法的,但它不建议使用。因为这种写法可读性不高,容易让人困惑。明确写出 return result 更有利于理解函数的行为。
因此,虽然在 go 中省略 return 在语法上是允许的,但建议更清晰地写出 return 返回值,以提高代码的可读性和可维护性。










