1
0
mirror of https://github.com/chai2010/advanced-go-programming-book.git synced 2025-05-24 12:32:21 +00:00

ch3-04-fix typo

This commit is contained in:
sfw 2018-06-28 15:26:00 +08:00
parent 229279a8d9
commit eaf3b073c0

View File

@ -31,7 +31,7 @@ TEXT ·Add(SB), $0
第一种是最完整的写法函数名部分包含了当前包的路径同时指明了函数的参数大小为24个字节对应参数和返回值的3个int类型。第二种写法则比较简洁省略了当前包的路径和参数的大小。需要注意的是标志参数中的NOSPLIT如果在Go语言函数声明中通过注释指明了标志应该也是可以省略的需要确认下
目前可能遇到的函数函数标志有NOSPLIT、WRAPPER和NEEDCTXT几个。其中NOSPLIT不会生成或包含栈分裂代码这一般用于没有任何其它函数调用的叶子函数这样可以适当提高性能。WRAPPER标志则表示这个是一个包装函数在panic或runtime.caller等某项处理函数帧的地方不会增加函数帧计数。最后的NEEDCTXT表示需要一个上下文参数一般用于闭包函数。
目前可能遇到的函数标志有NOSPLIT、WRAPPER和NEEDCTXT几个。其中NOSPLIT不会生成或包含栈分裂代码这一般用于没有任何其它函数调用的叶子函数这样可以适当提高性能。WRAPPER标志则表示这个是一个包装函数在panic或runtime.caller等某项处理函数帧的地方不会增加函数帧计数。最后的NEEDCTXT表示需要一个上下文参数一般用于闭包函数。
需要注意的是函数也没有类型上面定义的Add函数签名可以下面任意一种格式