我意识到Go没有类,而是使用了structs的概念。
结构有没有某种初始化函数,可以像类的__construct()函数一样调用?
示例:
type Console struct {
X int
Y int
}
func (c *Console) init() {
c.X = "5"
}
// Here I want my init function to run
var console Console
// or here if I used
var console Console = new(Console)
发布于 2011-11-29 09:04:52
Go没有隐式构造函数。你可能会写下这样的代码。
package main
import "fmt"
type Console struct {
X int
Y int
}
func NewConsole() *Console {
return &Console{X: 5}
}
var console Console = *NewConsole()
func main() {
fmt.Println(console)
}
输出:
{5 0}
发布于 2011-11-29 08:58:38
Go没有自动构造函数。通常,您可以创建自己的NewT() *T
函数,该函数执行必要的初始化。但它必须手动调用。
发布于 2019-07-13 00:19:58
这是一个Go结构初始化完成:
type Console struct {
X int
Y int
}
// Regular use case, create a function for easy create.
func NewConsole(x, y int) *Console {
return &Console{X: x, Y: y}
}
// "Manually" create the object (Pointer version is same as non '&' version)
consoleP := &Console{X: 1, Y: 2}
console := Console{X: 1, Y: 2}
// Inline init
consoleInline := struct {
X int
Y int
}{
X: 1,
Y: 2,
}
https://stackoverflow.com/questions/8303939
复制相似问题