• 函数

    不支持命名参数与默认值

    • 可变参数

      求多个int的和

      func IntSum(x ...int) {
      sum := 0
      for _, v := range x {
      sum += v
      }
      return sum
      }
    • 返回值命名

      相当于在函数内部声明了返回值变量

      func calc(x, y int) (sum int) {
      sum := x + y
      return
      }
    • 全局变量

      全局变量尽量少用,需要有区分度,再局部变量可能会重复声明出现混淆

      var name = "mkl"
      func main() {
      name = "bob" // 修改全局变量
      name := "Marry" // 又重新声明一个可用的声明局部变量
      }
    • if判断语句中的作用域

      不得在语句块外部使用

      if v, ok != m["mkl"]; ok {
      }
    • 函数类型与函数签名

      • 自定义函数类型
        type myFunc func()
        
        var fx myFunc
        fx = func() { fmt.Println("hello world!") } // 赋值
        fx()
      • 函数签名

        函数定义的格式

    • 高阶函数

      将函数作为参数传入

      能够提高代码的可读性

    • 闭包

      • 匿名函数

        必须立即调用 或者 定义变量名接收

        用在回调函数。闭包

      闭包=函数+引用

      func adder() func(int)int{
      x := 20
      // 函数内部引用了外部函数的变量x
      return func(y int) int {
      x -= y
      return x
      }
      }
      f := adder()
      f(10)
    • defer函数

      函数退出时调用

      执行顺序:先进后出

      适用于释放资源

      func main() {
      fmt.Println("start")
      defer fmt.Println(1)
      defer fmt.Println(2)
      defer fmt.Println(3)
      fmt.Println("end")
      }
      // start
      // end
      // 3
      // 2
      // 1
      • return 语句的底层实现
        return x => 1.返回值=x 2.运行defer 3.RET指令
    • 内置函数

      • close

        关闭channel

      • len

        求 string、array、slice、map、channel的长度

      • new

        分配内存,分配值类型,返回指针

      • make

        分配内存,分配引用类型,返回原对象本身

      • append

        追加元素至数组、slice中

      • panic与recover

        错误处理

函数 | Go语言的更多相关文章

  1. 3204: 数组做函数参数--排序函数2--C语言

    3204: 数组做函数参数--排序函数2--C语言 时间限制: 1 Sec  内存限制: 128 MB提交: 211  解决: 143[提交][状态][讨论版][命题人:smallgyy] 题目描述 ...

  2. 3203 数组做函数参数----排序函数--C语言版

    3203: 数组做函数参数----排序函数--C语言版 时间限制: 1 Sec  内存限制: 128 MB提交: 253  解决: 151[提交][状态][讨论版][命题人:smallgyy] 题目描 ...

  3. <编译原理 - 函数绘图语言解释器(1)词法分析器 - python>

    <编译原理 - 函数绘图语言解释器(1)词法分析器 - python> 背景 编译原理上机实现一个对函数绘图语言的解释器 - 用除C外的不同种语言实现 解释器分为三个实现块: 词法分析器: ...

  4. <编译原理 - 函数绘图语言解释器(2)语法分析器 - python>

    <编译原理 - 函数绘图语言解释器(2)语法分析器 - python> 背景 编译原理上机实现一个对函数绘图语言的解释器 - 用除C外的不同种语言实现 设计思路: 设计函数绘图语言的文法, ...

  5. PHP:函数和语言结构(转)

    转自:https://www.cnblogs.com/fanqiechaodan/articles/5222366.html 什么是语言结构呢?它和函数有什么不同吗? 1.  什么是语言结构和函数 语 ...

  6. <编译原理 - 函数绘图语言解释器(3)解释器 - python>

    <编译原理 - 函数绘图语言解释器(3)解释器 - python> <编译原理 - 函数绘图语言解释器(2)词法分析器 - python> <编译原理 - 函数绘图语言解 ...

  7. 第四章 函数(JavaScript:语言精粹)

    函数包含一组语句,用来指定对象的行为,其代码可以用来重复使用.   一般来说,编程就是将一组需求分解成一组函数和数据结构的技能.   概览:函数对象 | 函数字面量 | 调用 | 方法调用模式 | 函 ...

  8. 大数的加法函数--c语言

    浏览网站http://paste.ubuntu.com/23687758/ #include<stdio.h> #include<stdlib.h> #include<s ...

  9. Linux下普通IO文件操作函数---C语言

    普通文件IO总结 FILE结构体    typedef struct   {       int level; /*填充/清空一级缓存*/     unsigned flag; /*文件状态指针*/ ...

  10. 【转】 strrchr()函数---C语言

    转自:https://baike.baidu.com/item/strrchr/4621437?fr=aladdin   函数名称: strrchr 函数原型:char *strrchr(const ...

随机推荐

  1. 解决ros-melodic-desktop-full安装过程中未满足的依赖关系问题

    sudo apt install ros-melodic-desktop-full 正在读取软件包列表- 完成正在分析软件包的依赖关系树 正在读取状态信息- 完成 有一些软件包无法被安装.如果您用的是 ...

  2. Django运行服务报NameError: name ‘os‘ is not defined

    出现Bug: 原因:这里调用了os模块,但是文件头并没引用os模块 解决办法:在settings.py文件头加上:

  3. 经验总结之 _DEBUGGER _03 _Server Tomcat v8.0 Server at localhost was unable to start within xx seconds

    经验总结之 _DEBUGGER _03 _Server Tomcat v8.0 Server at localhost was unable to start within xx seconds 好好 ...

  4. Netty 如何自动探测内存泄露的发生

    本文基于 Netty 4.1.112.Final 版本进行讨论 本文是 Netty 内存管理系列的最后一篇文章,在第一篇文章 <聊一聊 Netty 数据搬运工 ByteBuf 体系的设计与实现& ...

  5. 基于Java+SpringBoot+Mysql实现的古诗词平台功能设计与实现三

    一.前言介绍: 1.1 项目摘要 随着信息技术的迅猛发展和数字化时代的到来,传统文化与现代科技的融合已成为一种趋势.古诗词作为中华民族的文化瑰宝,具有深厚的历史底蕴和独特的艺术魅力.然而,在现代社会中 ...

  6. vite3+vue3 实现前端部署加密混淆 javascript-obfuscator

    安装 pnpm install javascript-obfuscator 安装之后 在项目根目录新建一个 obfuscator.js 在 obfuscator.js 写入以下代码 直接复制粘贴 ` ...

  7. 简单但实用,RTC时钟使用指南

    合宙Air201快速入门-RTC实时时钟使用示例- 本教程教你通过使用脚本代码,实现Air201内置RTC实时时钟同步时间.获取时间.设置时间等功能,可根据实际需求灵活应用. 我们先了解一些相关基础知 ...

  8. 【原创】PREEMPT-RT 系统cpu使用率周期CPU飙高问题

    PREEMPT-RT 系统cpu使用率周期CPU飙高问题 目录 PREEMPT-RT 系统cpu使用率周期CPU飙高问题 背景 现象 复现条件 原因 解决措施 背景 在22年进行PREEMPT-RT系 ...

  9. vue遇到Conflicting order. Following module has been added:(加载顺序冲突)

    其中article.vue和topGroup.vue这两个文件在模块unitTest和wrongBook上出现加载冲突 其中一个文件先加载topGroup.vue文件其中一个文件先加载article. ...

  10. element ui Tree树形控件获取未全选父节点和子节点id

    Tree树形控件选中状态 在做分配权限的时候如图选择了父节点的某些子节点,现在父节点是半选中状态,使用this.$refs.tree.getCheckedKeys()只能拿到当前的子节点,子节点全选才 ...