Pine Script如何正确实现可变计数器 代码不生效解决
问题根因
这段Go代码计数不生效的核心原因是误用了短变量声明操作符:=:
- if代码块内的
count := count + 1会触发短变量声明规则,在if的局部作用域下创建一个全新的同名局部变量count,和外层初始化的var count = 0完全是两个独立变量 - 外层定义的计数变量count从头到尾没有被修改,if块内新建的局部count会在if逻辑执行完毕后直接销毁,自然无法得到预期的计数结果
修正方案
将if块内的短变量声明符:=替换为普通赋值操作符=,直接对外层已经声明完成的count变量做修改即可:
var count = 0 if a == b { count = count + 1 // 也可以简写为 count += 1,效果完全一致 }
注意:Go语言里的
:=仅用于声明并初始化当前作用域下的新变量,给外层已声明的变量赋值时直接用=即可,否则很容易出现这种局部变量遮蔽外层变量的问题。
内容的提问来源于stack exchange,提问作者Andrey Kanava
相关产品推荐
相关产品推荐

