go - 调试实现增量功能的结构
问题描述
我正在尝试在我的结构上实现一个增量函数。我不知道为什么,但似乎当我调用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(){
解决方案
您需要更新方法以增加该位置的变量值。因此,您需要更改F()
方法
func (F *fib) incr(){
F.i++
F.fa, F.fb = F.fa+F.fb, F.fa
}
不同之处在于*
推荐阅读
- ruby-on-rails - Rails4通过输入上传完成后如何触发引导模式?
- java - 使用 Dijkstra 检测多条最短路径
- r - 如何在factoextra的fviz_pca_var中设置数据标签的字体大小
- python - 如何合并来自多个 Elasticsearch 查询的排名?
- c# - 将类型传递给通用方法 C#
- ionic-framework - 如何在 ionic 3 中禁用视图缓存
- python - 如何绘制索引时间戳超过午夜但日期相同的 Pandas df
- javascript - 在 JavaScript 中单击浏览器窗口或选项卡关闭时如何实现注销功能?
- ios - 在图像上绘图并为 CGRect 实现 AspectFill。可以做到吗?
- java - Apache AXIS2 会解码 URL 参数吗?