首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >结构的初始化函数

结构的初始化函数
EN

Stack Overflow用户
提问于 2011-11-29 07:36:12
回答 3查看 27.6K关注 0票数 38

我意识到Go没有类,而是使用了structs的概念。

结构有没有某种初始化函数,可以像类的__construct()函数一样调用?

示例:

代码语言:javascript
复制
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)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-29 09:04:52

Go没有隐式构造函数。你可能会写下这样的代码。

代码语言:javascript
复制
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)
}

输出:

代码语言:javascript
复制
{5 0}
票数 63
EN

Stack Overflow用户

发布于 2011-11-29 08:58:38

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

票数 6
EN

Stack Overflow用户

发布于 2019-07-13 00:19:58

这是一个Go结构初始化完成:

代码语言:javascript
复制
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,
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8303939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档