在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
如果你看过 Go 语言标准库,应该有见到过,有一些函数只有签名,没有函数体。你有没有感觉到很奇怪?这到底是怎么回事?我们自己可以这么做吗?本文就来解密它。 首先,函数肯定得有实现,没有函数体,一定是在其他某个地方。Go 中一般有两种形式。 函数签名使用Go,然后通过该包中的汇编文件来实现它比如,在标准库
它的函数实现在哪呢?其实只要稍微留意一下发现该目录下有一个文件:asm.s,它提供了具体的实现,即通过汇编来实现:
具体的实现,在 很明显,这种方式一方面会是效率的考虑,另一方面,有一些代码只能汇编实现。 通过//go:linkname指令来实现比如,在标准库
它的实现在哪里呢?在 time 包中并没有找到相应的汇编文件。 按照 Go 源码的风格,这时候一般需要去
这就是我们要找的 如果你有认真跟着学习「每日一学」,对于
因此我们在遇到函数没有实现,但汇编又不存在时,可以通过尝试搜索: 这里面要提示一点,使用 一般来说,我们自己的代码不会使用这样的方式,但你会写一个示例试试吗?欢迎评论给出你的代码。 另外,想想为什么 转载自:
转 https://www.cnblogs.com/itbsl/p/11410857.html |
请发表评论