美文网首页
Go语言基础3 - 函数

Go语言基础3 - 函数

作者: 张云飞Vir | 来源:发表于2020-03-10 18:04 被阅读0次

概述

我们将用几节来学习Go语言基础,本文结构如下:

 函数
    -多值返回
    -可命名结果形参
    -Defer

函数

函数的基本语句结构:

func DoSome(a int ) string{
  return "do"
}
  • func 是关键字,表示函数的开始。
  • 参数的写法是 变量名在前,类型在后。
  • 返回值写在函数的参数的括号后面,上面的例子返回值是 string

多值返回

函数和方法可返回多个值:

func  Write(b []byte) (int, error)

上面的返回值,声明返回的是 int, error 这两个值。在一些需要返回错误信息的情况下会非常有用。

调用时,可以这么使用:
r,e := Write()
使用 空白标识符可以忽略第二个参数:
r,_ := Write()

可命名结果形参

函数的返回值可被命名,并作为常规变量使用,就像传入的形参一样。 比如:

func nextInt(b []byte, pos int) (value, nextPos int) {

命名后,一旦该函数开始执行,它们就会被初始化为与其类型相应的零值;

若该函数执行了一条不带实参的 return 语句,则结果形参的当前值将被返回。

一个示例:

  func ReadFull(r Reader, buf []byte) (n int, err error) {
    for len(buf) > 0 && err == nil {
        var nr int
        nr, err = r.Read(buf)
        n += nr
        buf = buf[nr:]
    }
    return
  }

Defer

defer 语句用于 预先认为某个函数被调用。也可理解为 推迟执行函数。被 defer 的 函数会在执行 defer 所属于的函数返回之前 “立即执行"。

例如无论以何种路径返回,都必须释放资源的函数。 典型的例子就是关闭文件:

  func Contents(filename string) (string, error) {
    f, err := os.Open(filename)
    if err != nil {
        return "", err
    }
    defer f.Close()  // f.Close 会在我们结束后运行。

END

相关文章

  • Go语言基础3 - 函数

    概述 我们将用几节来学习Go语言基础,本文结构如下: 函数 函数的基本语句结构: func 是关键字,表示函数的开...

  • 11.***函数***

    Go语言基础之函数 Golang 函数是组织好的、可重复使用的、用于执行指定任务的代码块。本文介绍了Go语言中函数...

  • 许世伟的Go语言基础 第三章总结

    第3章 面向对象编程 Go语言没有继承、虚函数、构造析构函数、this指针等。 3.1类型系统 类型系统: 基础类...

  • Go语言学习笔记(二)-基础语法

    Go语言结构 Go语言的基础组成有一下几个部分: 包声明 包引入 函数 变量 语句&表达式 注释 关于Go的语言组...

  • Go语言基础——函数

    Go函数的特性 不支持:嵌套、函数重载、默认值参数支持:可变变参、多返回值、命名返回值参数、匿名函数、闭包特别注意...

  • go 语言基础--函数

    1、函数 和C语言类型,Go语言也有函数的概念,语法如下: 2 参数和返回值 2.1 返回值 go 语言可以返回零...

  • go语言基础

    go语言基础 go 语言接口

  • Go语言探索 - 7(原创)

    Go语言基础系列博客用到的所有示例代码 在 上一篇文章主要学习了Go语言的函数定义、值传递和引用传递以及闭包函数。...

  • 区块链学习计划

    1、Go 语言基础 2、使用Go语言搭建一个数字货币系统 8 3、HyperLedger Fabric 1.0 ...

  • Go语言学习基础笔记

    Go 1.声明变量 2.Go语言常量 3.运算符 4.for循环 5.Go函数 6.数组声明 7.语言指针 Go ...

网友评论

      本文标题:Go语言基础3 - 函数

      本文链接:https://www.haomeiwen.com/subject/njcgdhtx.html