append函数的实现在哪?

在源码里翻了半天都没找到,builtin.go里面只是定义了append并没有实现的源码,难道是闭源的?

共 6 个回复


stevewang

src\runtime\slice.go

func growslice

# 0

stevewang

其实你用go build -gcflags=-S xxx.go编译一下看看汇编代码就知道了。

# 1

heimeil

@stevewang,码农表示看不懂编译信息,能找到从append到growslice中间所有调用的代码吗?

# 2

snake117

@heimeil 内建函数都是C写的,builtin.go里只是声明。go1.5以后应该会把内建函数改成go版本源码的。

# 3

heimeil

原来是这样,话说@功能怎么坏了

# 4

stevewang

内建函数倒不一定是C写的。growslice就是一个go函数(go1.4)。

# 5