Class 为Golang结构字段指定一个新值
我对结构字段有问题 我用一种方法创建了一个类Class 为Golang结构字段指定一个新值,class,variables,methods,go,scope,Class,Variables,Methods,Go,Scope,我对结构字段有问题 我用一种方法创建了一个类点,该方法通过dx增加或减少对象变量x。另一种方法Print用于输出结果 在main()中,使用默认值x=3和dx=2创建一个新实例,然后我调用Move()和Print()。我希望x的值在Move()过程中发生更改,Print()将生成Final x=5,但它会显示以下内容: 2014/07/28 15:49:44 New X=5 2014/07/28 15:49:44 Final X=3 我的代码怎么了 类型点结构{ x、 dx int } fun
点
,该方法通过dx
增加或减少对象变量x
。另一种方法Print
用于输出结果
在main()
中,使用默认值x=3
和dx=2
创建一个新实例,然后我调用Move()
和Print()
。我希望x
的值在Move()
过程中发生更改,Print()
将生成Final x=5
,但它会显示以下内容:
2014/07/28 15:49:44 New X=5
2014/07/28 15:49:44 Final X=3
我的代码怎么了
类型点结构{
x、 dx int
}
func(s点)移动(){
s、 x+=s.dx
log.Printf(“新X=%d”,s.X)
}
func(s点)打印(){
log.Printf(“最终X=%d”,s.X)
}
func main(){
st:=点{3,2};
圣莫夫
圣普林特
}
您需要在此处使用指针,否则每次仅更改原始对象的副本。一切都在进行中
您需要在此处使用指针,否则每次仅更改原始对象的一个副本。一切都在进行中
这就是指针接收器和值接收器之间的区别
这就是指针接收器和值接收器之间的区别
就这样!我习惯于ABAP太多,对变量的引用默认情况下会传递到函数中。谢谢你的快速回答!就这样!我习惯于ABAP太多,对变量的引用默认情况下会传递到函数中。谢谢你的快速回答!
type Point struct {
x, dx int
}
func (s *Point) Move() {
s.x += s.dx
log.Printf("New X=%d", s.x)
}
func (s *Point) Print() {
log.Printf("Final X=%d", s.x)
}
func main() {
st := Point{ 3, 2 };
st.Move()
st.Print()
}