golang 多返回值怎么返回错误

func abc(path string) ([]string,error){
    dir,err := ioutil.ReadDir(path)
    if err != nil {
        return err
    }
    ......
}

这个函数如果成功我想返回切片,失败我就返回ioutil.ReadDir的错误。我上面这种写法报错。应该怎么写呢???

pardon110
最佳答案

你应该这样写,函数返回值是两个,无论成败

func abc(path string) ([]string,error){
    dir,err := ioutil.ReadDir(path)
    if err != nil {
        return []string{}, err
    }
    ......
}

注意ReadDir 函数签名是如下,不是单纯的string

func ReadDir(dirname string) ([]os.FileInfo, error)
3周前 评论
讨论数量: 2
pardon110

你应该这样写,函数返回值是两个,无论成败

func abc(path string) ([]string,error){
    dir,err := ioutil.ReadDir(path)
    if err != nil {
        return []string{}, err
    }
    ......
}

注意ReadDir 函数签名是如下,不是单纯的string

func ReadDir(dirname string) ([]os.FileInfo, error)
3周前 评论
xianyunyehe
return nil,err
3周前 评论
qIXbwU11 (楼主) 1周前
qIXbwU11 (楼主) 1周前
xianyunyehe (作者) 1周前

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!