我是 golang 的新手。我写了这样的代码:
package main
import (
"fmt"
)
const (
BIG_NUM = 10 * 1000 * 1000
)
type BigData [BIG_NUM]uint64
func (self BigData) String() string {
return fmt.Sprintf("%d\n", self[0])
}
func (self *BigData) Clear() {
*self = BigData{}
}
func main() {
data := new(BigData)
fmt.Println(data)
}
编译后,可执行文件在81M左右:
$ ls -l
-rwxr-xr-x 1 tchen 522017917 81533376 Dec 19 08:44 test
-rw-r--r-- 1 tchen 522017917 290 Dec 19 08:44 test.go
当我删除 Clear() 函数时,可执行文件变为正常大小。那么为什么这个 Clear() 函数会生成这么大的可执行文件呢?它应该在运行时调用,而不是编译时调用,对吗?
相关分类