结构的init函数

Sen*_*lez 27 class go construct

我意识到Go没有类,而是推动了结构的概念.

结构体是否具有任何类型的初始化函数,可以类似于类的__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)
Run Code Online (Sandbox Code Playgroud)

pet*_*rSO 53

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)
}
Run Code Online (Sandbox Code Playgroud)

输出:

{5 0}
Run Code Online (Sandbox Code Playgroud)


jim*_*imt 5

Go没有自动构造函数.通常,您可以创建自己的NewT() *T函数来执行必要的初始化.但它必须手动调用.