前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Go语言从入门到实战》第五章:函数

《Go语言从入门到实战》第五章:函数

作者头像
yeedomliu
发布2020-11-03 14:39:44
3200
发布2020-11-03 14:39:44
举报
文章被收录于专栏:yeedomliuyeedomliu

第五章:函数

13 | Go 语言的函数

函数是一等公民

  1. 可以有多个返回值
  2. 所有参数都是值传递:slice,map,channel 会有传引用的错觉
  3. 函数可以作为变量的值
  4. 函数可以作为参数和返回值

切片背后对应一个数组,切片本身是一个数据结构,数据结构本身包含了对应数据的指针,所以说即使是在传值被复制的情况下,通过指向数组的指针操作具体的值时,其实操作的是同一块空间,所以就会有一种传引用的错觉。实际上是结构被复制了,但包含的指针依然指向的是同一个后端的数组

代码语言:javascript
复制
package func_test

import (
    "math/rand"
    "testing"
)

func returnMultiValues() (int, int) {
    return rand.Intn(10), rand.Intn(20)
}

func TestMultiValues(t *testing.T) {
    a, b := returnMultiValues()
    t.Log(a, b)

    a, _ := returnMultiValues() // 小技巧:可以用_忽略其中的返回值
    t.Log(a)
}

函数编程:计算运行函数的时间

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 yeedomliu 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第五章:函数
    • 13 | Go 语言的函数
      • 函数是一等公民
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档