在GO中,如何声明函数WITH TYPE的返回变量?
e.g。我有这个代码
dat, err := ioutil.ReadFile("/tmp/dat")
check(err)
fmt.Print(string(dat))
但我想要的是:
var dat []byte, err error := ioutil.ReadFile("/tmp/dat")
check(err)
fmt.Print(string(dat))
然而,无论我如何尝试,我只得到这个输出
语法错误:意外逗号,期待分号或换行符或}
我在没有IDE的情况下工作,随着变量数量的增加,必须将所有返回值的类型保存在短期内存中真的很愚蠢......更不用说其他人必须阅读代码了。 / p>
如何声明返回的元组WITH类型?
答案 0 :(得分:4)
那是因为您在作业中使用了:=
,这是一种方便的语法来声明和分配。它使得你不必提供类型,我认为编译器只是通过返回的内容/来自右侧的任何类型来暗示它。相反,你需要这样做;
var dat []byte
var err error
dat, err = ioutil.ReadFile("/tmp/dat")
但没有人这样做,因为dat, err := ioutil.ReadFile("/tmp/dat")
语法更清晰。