深入分析golang多值返回以及闭包的实现

2020-01-28 12:05:40王旭

闭包函数的调用过程:

      1、通过闭包对象地址获取闭包上下文数据a的地址;

      2、接着通过a的地址获取到a的值,并与参数i相加;

      3、将a+i作为最新值存入a的地址;

      4、将a最新值返回给main函数;

五、总结

这篇文章简单地从汇编角度分析了golang多值返回和闭包的实现;

      多值返回主要是通过fp寄存器+offset获取参数以及存入返回值实现;

      闭包主要是通过在编译时生成包含闭包函数和闭包上下文数据的结构体实现;

以上就是这篇文章的全部内容,希望对大家学习或只用golang能有一定的帮助,如果有疑问大家可以留言交流。