Golang 开发实战day08 - Multiple Return values
作者:mmseoamin日期:2024-04-27

🏆个人专栏

🤺 leetcode

🧗 Leetcode Prime

🏇 Golang20天教程

🚴‍♂️ Java问题收集园地

🌴 成长感悟

欢迎大家观看,不执着于追求顶峰,只享受探索过程

Golang 教程08 - Multiple Return values

1. Multiple return values

1.1 如何理解多个返回值?

Go语言中的多返回值,就像你听了一首歌曲yellow,可以从歌曲里反馈出忧郁和害羞!Golang的多个返回值就类似于如此,设定一个函数,它允许函数返回多个值,就像同时把多个数据传递给调用者一样,是不是很酷?

下面就让我们来揭秘这个魔术!

1. 2 函数声名

首先,我们来看看多返回值的语法:

func 函数名(参数列表) (返回值1类型, 返回值2类型, ...) {
    // 函数体
    return 返回值1, 返回值2, ...
}

是不是很简单?和普通函数的定义差不多,只是多了几个返回值类型。

1.3 举例

Example 1:

func calcCircle(radius float64) (area float64, perimeter float64) {
    area = math.Pi * radius * radius
    perimeter = 2 * math.Pi * radius
    return area, perimeter
}
func main() {
    radius := 5.0
    area, perimeter := calcCircle(radius)
    fmt.Println("面积:", area)
    fmt.Println("周长:", perimeter)
}

output:

面积: 78.53981633974483

周长: 31.41592653589793

Example 2:

func readFile(filename string) ([]byte, error) {
    data, err := ioutil.ReadFile(filename)
    if err != nil {
        return nil, err
    }
    return data, nil
}
func main() {
    data, err := readFile("myfile.txt")
    if err != nil {
        fmt.Println("错误:", err)
    } else {
        fmt.Println("文件内容:", string(data))
    }
}

Output:

错误: open myfile.txt: The system cannot find the file specified.

代码部分解释如下:

  • readFile 函数定义了两个返回值:[]byte 类型的文件内容和 error 类型的错误信息。
  • 在函数体内,我们使用 ioutil.ReadFile 函数读取文件内容。

    Eample 3:

    func StrToInt(s string) (int, error) {
    	// 使用 strconv.Atoi 函数将字符串转换为整数
    	i, err := strconv.Atoi(s)
    	if err != nil {
    			return 0, err
    	}
    	return i, nil
    }
    func main() {
    	s := "123"
        i, err := StrToInt(s)
        if err != nil {
            fmt.Println("错误:", err)
        } else {
            fmt.Println("转换后的整数:", i)
        }
    }
    

    Output:

    转换后的整数: 123

    代码部分解释如下:

    • StrToInt 函数定义了两个返回值:int 类型的转换后结果和 error 类型的错误信息。
    • 在函数体内,我们使用 strconv.Atoi 函数将字符串转换为整数。
    • 如果转换成功,则返回转换后的整数和 nil。
    • 如果转换失败,则返回 0 和错误信息。

      1.4 multiple return values的灵活运用

      多返回值可以让我们将多个相关的数据一起返回,避免了在调用者中进行多次赋值操作,提高了代码的简洁性和可读性。

      下面是一些多返回值的应用场景:

      • 计算函数:可以同时返回多个计算结果,例如面积和周长、体积和表面积等。(Example 1)
      • 错误处理函数:可以同时返回错误信息和错误代码。(Example 2)
      • 数据转换函数:可以同时返回转换后的数据和错误信息。(Example 3)

        1.5 注意事项

        返回值的顺序必须与函数声明中的顺序一致。

        即使只使用一个返回值,也需要声明所有返回值类型。

        可以使用匿名返回值来忽略某些返回值。

        1.6 总结

        Go语言中的多返回值是一个非常方便的功能,可以让我们更优雅地编写代码。掌握了多返回值的使用方法,可以提高你的编程效率和代码质量。

        不追求山顶的景色,享受攀登的过程,让我们期待下面学习。

        Golang 开发实战day08 - Multiple Return values,在这里插入图片描述,第1张