I read来自Go 1.4,Go运行时是用Go本身(而不是C语言)编写的。
这怎么可能?如果Go程序在运行时之上运行,并且运行时是Go程序,那么运行时是否在它自身之上运行?
答案 0 :(得分:3)
简而言之:小心。
总之:不安全的包允许你做指针算术和任意转换,你需要实现go gc。您可以避免在gc go代码中使用gc,就像在正常的go代码中一样:使用堆栈或静态分配的数据。下面的链接提到主线go编译器通过未记录的选项在运行时强制执行此操作。一些汇编位允许您进行系统调用,这使您可以执行从生成过程到打开文件的所有操作。
越长越权威:请参阅Ian Lance Taylor (of the go team)'s post on golang-nuts。