写点什么

初识 Golang 之函数及方法的多返回值

用户头像
Kylin
关注
发布于: 2021 年 03 月 26 日

我们试图读取用户的键盘输入,但出现了一个错误。编译器报告了在此代码中的一个问题:

package main
import ( "bufio" "fmt" "os")
func main() { reader := bufio.NewReader(os.Stdin) input := reader.ReadString('\n') fmt.Println(reader)}


./prog.go:11:8: assignment mismatch: 1 variable but reader.ReadString returns 2 values
Go build failed.
复制代码

问题是 ReadString 方法试图返回两个值,而我们只提供了一个变量来赋值。


在大多数编程语言中,函数和方法只能由一个返回值。但在 Go 中,它们可以返回任意数量的值。Go 中多个返回值最常见的用法是返回一个额外的错误值,可以通过查询该错误值来确定函数或方法运行时是否发生了错误。举几个例子。

bool, err := strconv.ParseBool("true") //如果字符串无法转换为布尔值,则返回一个错误file, err := os.Open("myfile.txt") //如果文件无法打开,则返回一个错误response, err := http.Get("https://www.baidu.com") //如果无法访问页面,则返回错误
复制代码


Go 要求声明的每个变量都必须在程序的某个地方使用。如果我们添加了一个 err 变量,而不检查它,我们的代码将无法编译。未使用的变量通常表示一个 bug,所以这是一个 Go 帮助检测和修复 bug 的例子。

package main
import ( "fmt" "os")
func main() { fmt.Println("")}
// 报错信息:imported and not used: "os"
复制代码


Go 不允许我们声明一个变量,除非我们使用它。

用户头像

Kylin

关注

现实的理想主义者 2019.10.08 加入

【坐标】:魔都 【品种】:程序媛 【标签】:技术宅、大吃货 【追求】:改变世界、改变自己 【信条】:每次前进一小步

评论

发布
暂无评论
初识Golang之函数及方法的多返回值