gpt4 book ai didi

go - 在方法上创建一个对象

转载 作者:IT王子 更新时间:2023-10-29 01:53:04 26 4
gpt4 key购买 nike

当我在方法上创建一个 self 对象时,这是一个错误的代码吗?像这样(看方法Create)

package main

import (
"fmt"
)

type SelfInitialisator struct {
Fields1, Fields2 string
}

func (rcv *SelfInitialisator) Method1() {
fmt.Println(rcv.Fields1, rcv.Fields2)
}

func (rcv *SelfInitialisator) CreateObject() {
s := new(SelfInitialisator)
s.Fields1 = "Hello"
s.Fields2 = "Foo"
}

func main() {

s := new(SelfInitialisator)
s.CreateObject()

}

最佳答案

在此代码中,您将创建一个内存对象,然后将其丢弃并创建另一个效率相当低的对象。您也不会返回。

s := new(SelfInitialisator)
s.CreateObject()

Go 的方式是使用一个函数来创建你的对象,就像这样

func NewSelfInitialisator() *SelfInitialisator {
s := new(SelfInitialisator)
s.Fields1 = "Hello"
s.Fields2 = "Foo"
return s
}

然后打电话

s := NewSelfInitialisator()

关于go - 在方法上创建一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27753921/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com