猿问

调试实现增量功能的结构

我正在尝试在我的结构上实现一个增量函数。我不知道为什么,但似乎当我调用F.incr()main 时,fib 结构的参数似乎保持不变。我想我可能对我在我的incr()函数中所做的事情有一个不正确的想法,尽管我无法找到正确的文档。我错过了什么?


type fib struct {

    i uint64 

    fa uint64   

    fb uint64 

}


func (F fib) incr(){

    F.i++   

    F.fa, F.fb = F.fa+F.fb, F.fa

}


func main() {

    F := fib{1,1,0}

    var sum uint64 = 0

    for; F.i <= 10; F.incr() {

        k := f(F.i, F.fb, F.fa)

        fmt.Printf("calculating the %vth f(i,F_%v, F_%v): %v\n", F.i, F.i-1, F.i, k)    

—snip-

编辑:感谢@peterSO,我需要将 incr 更改为 func (F *fib) incr(){


Qyouu
浏览 124回答 1
1回答

万千封印

您需要更新方法以增加该位置的变量值。因此,您需要更改F()方法func (F *fib) incr(){&nbsp; &nbsp; F.i++&nbsp; &nbsp;&nbsp; &nbsp; F.fa, F.fb = F.fa+F.fb, F.fa}不同之处在于*
随时随地看视频慕课网APP

相关分类

Go
我要回答