```go
func test1() (data string, err error) {
data, err := "abc", errors.New("test")
return data, err
}
func test2() (data string, err error) {
fd, err := os.Open("tttt.go")
if err != nil {
panic("error")
}
}
```
函数返回值名即 data, err 到底起到一个什么作用?减少声明么?
```go
data, err := "abc", errors.New("test")
// 重复声明错误
```
```go
fd, err := os.Open("tttt.go")
// 无重复声明错误?
```
按我的理解第二段也应该报err的重复声明错误,但是结果却没报,不太懂这里是为什么?