xuguiyi00 2020-04-11
Go语言的结构体没有构造函数,我们可以自己实现。
例如,下方的代码就实现了一个person的构造函数。
因为struct是值类型,如果结构体比较复杂的话,值拷贝性能开销会比较大,所以该构造函数返回的是结构体指针类型。
type person struct { name string city string age int8 } func newPerson(name, city string, age int8) *person { return &person{ name: name, city: city, age: age, } } //调用构造函数 func main() { p9 := newPerson("张三", "沙河", 90) fmt.Printf("%#v\n", p9) //&main.person{name:"张三", city:"沙河", age:90} }
是一道经常出现在前端面试时的问题。如果只是简单的了解new关键字是实例化构造函数获取对象,是万万不能够的。更深入的层级发生了什么呢?同时面试官想从这道题里面考察什么呢?下面胡哥为各位小伙伴一一来解密。