草庐IT

Getter-Setter

全部标签

javascript - 如何将 getter 添加到现有对象

我可以像这样在JavaScript对象中使用getter:varmember={firstName:"XYZ",lastName:"zzz",getfullName(){return(this.firstName+''+this.lastName);}}我什至可以即时添加更多属性,如下所示:member.isGuest=true;但是,有什么方法可以将getter添加到现有对象中吗?像这样:member.isGuest=getisGuest(){returnthis.firstName=='Guest';} 最佳答案 尝试defin

javascript - 为什么在 JavaScript 中使用 getter 和 setter?

我知道JavaScript中的getter和setter是如何工作的。我不明白的是,当我们使用普通函数可以获得相同的结果时,为什么我们需要它们?考虑以下代码:varperson={firstName:'Jimmy',lastName:'Smith',getfullName(){returnthis.firstName+''+this.lastName;}}console.log(person.fullName);//JimmySmith我们可以轻松地用函数替换getter:varperson={firstName:'Jimmy',lastName:'Smith',fullName:fu

javascript - 为什么在 JavaScript 中使用 getter 和 setter?

我知道JavaScript中的getter和setter是如何工作的。我不明白的是,当我们使用普通函数可以获得相同的结果时,为什么我们需要它们?考虑以下代码:varperson={firstName:'Jimmy',lastName:'Smith',getfullName(){returnthis.firstName+''+this.lastName;}}console.log(person.fullName);//JimmySmith我们可以轻松地用函数替换getter:varperson={firstName:'Jimmy',lastName:'Smith',fullName:fu

go - 做 getters 和 setters 的推荐方法

我有一个将用go编写的项目,它在一个结构中有超过30个字段,在允许设置值之前需要验证这些字段。在python中,我可能会使用描述符或至少使用属性来执行此操作,以尽可能避免样板代码。我的问题是在go中执行此操作的最佳方法通常是什么?只是在结构中使用小写变量并为每个属性设置get和set函数,还是有更好的方法来防止样板代码? 最佳答案 来自godocs:Godoesn'tprovideautomaticsupportforgettersandsetters.There'snothingwrongwithprovidinggettersa

go - 做 getters 和 setters 的推荐方法

我有一个将用go编写的项目,它在一个结构中有超过30个字段,在允许设置值之前需要验证这些字段。在python中,我可能会使用描述符或至少使用属性来执行此操作,以尽可能避免样板代码。我的问题是在go中执行此操作的最佳方法通常是什么?只是在结构中使用小写变量并为每个属性设置get和set函数,还是有更好的方法来防止样板代码? 最佳答案 来自godocs:Godoesn'tprovideautomaticsupportforgettersandsetters.There'snothingwrongwithprovidinggettersa

go - golang中 slice 结构的setter方法

我有一个定义如下的支柱typeReqJSONstruct{Requeststruct{Datastruct{Objectstruct{User[]User`json:"user"`}`json:"object"`}`json:"data"`}`json:"request"`}typeUserstruct{UserIDstring`json:"userid"`IPAddrstring`json:"ipaddr"`Noofusersstring`json:"noofusers"`Qosstring`json:"qos"`IDstring`json:"id"`Domainstring`jso

go - golang中 slice 结构的setter方法

我有一个定义如下的支柱typeReqJSONstruct{Requeststruct{Datastruct{Objectstruct{User[]User`json:"user"`}`json:"object"`}`json:"data"`}`json:"request"`}typeUserstruct{UserIDstring`json:"userid"`IPAddrstring`json:"ipaddr"`Noofusersstring`json:"noofusers"`Qosstring`json:"qos"`IDstring`json:"id"`Domainstring`jso

struct - 为什么我的 setter 不在匿名结构字段上工作?

我刚刚开始学习Go,这里有一些我无法完全理解的行为:packagemainimport"fmt"typeMessageinterface{SetSender(senderstring)}typemessagestruct{senderstring}typeJoinstruct{messageChannelstring}func(mmessage)SetSender(senderstring){m.sender=sender}funcmain(){varmsgMessagemsg=Join{}msg.SetSender("Jim")fmt.Printf("%s",msg)}这会打印{{}

struct - 为什么我的 setter 不在匿名结构字段上工作?

我刚刚开始学习Go,这里有一些我无法完全理解的行为:packagemainimport"fmt"typeMessageinterface{SetSender(senderstring)}typemessagestruct{senderstring}typeJoinstruct{messageChannelstring}func(mmessage)SetSender(senderstring){m.sender=sender}funcmain(){varmsgMessagemsg=Join{}msg.SetSender("Jim")fmt.Printf("%s",msg)}这会打印{{}

function - 为什么 Go 函数字段 setter 不保留函数?

给定这个短程序:packagemainimport"fmt"typeFoostruct{doerfunc()}func(fFoo)SetDoer(doerfunc()){f.doer=doer}funcmain(){foo:=Foo{func(){fmt.Println("original")}}foo.doer()foo.SetDoer(func(){fmt.Println("replacement")})foo.doer()}输出是:originaloriginal我原以为是:originalreplacement为什么不是呢?请注意,如果我直接在main()中设置foo.doer