GO语言基础教程(77)Go函数之函数的返回值:Go函数返回值全解:从摸鱼到硬核的姿势

大家好,我是刚吃完第三杯咖啡还在摸鱼的Go语言爱好者。今天我们要聊一个看似简单,实则有点意思的话题——Go函数的返回值。

如果你刚开始学Go,可能会想:“返回值?不就是函数最后那个东西嘛,有什么好讲的?” 别急,等我讲完,你可能会发现自己之前写的Go函数有点“亏”了。

一、基础篇:普通的返回值

先来看最基础的返回值用法:

package main

import "fmt"

// 最基本的单返回值
func add(a, b int) int {
    return a + b
}

// 多返回值
func swap(a, b string) (string, string) {
    return b, a
}

func main() {
    sum := add(3, 5)
    fmt.Println("3+5=", sum)
    
    x, y := swap("hello", "world")
    fmt.Println(x, y) // 输出:world hello
}

看到没?Go函数可以返回多个值,这是很多语言羡慕不来的特性。想象一下,在其他语言里你要交换两个变量值,要么得用指针,要么得封装成结构体,在Go里直接一个函数搞定!

但这里有个坑等着新手跳:

// 错误示范!
result := swap("hello", "world")
fmt.Println(result)

这么写会报错!为什么?因为swap返回两个值,你只用一个变量接,Go编译器会生气:“我给你两个值,你只准备一个位置,这不合适吧?”

正确的做法是要么用两个变量接,要么用下划线忽略其中一个:

// 正确做法1:全都要
x, y := swap("hello", "world")

// 正确做法2:只娶一个,其他不要
result1, _ := swap("hello", "world")

二、进阶篇:命名返回值

这是Go语言的一个特色功能,先看代码:

// 命名返回值
func splitNumber(num int) (half, double int) {
    half = num / 2
    double = num * 2
    return // 注意这里,直接return就行
}

func main() {
    h, d := splitNumber(10)
    fmt.Printf("一半是%d, 两倍是%d\n", h, d) // 输出:一半是5, 两倍是20
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值