Pine Script多行三元运算符报错:输入':'存在语法错误
问题原因
报错的核心原因有2个:
- 倒数第二行的三元运算符符号书写错误:你把条件后的
?误写为了:,违反了条件 ? 真值返回值 : 假值分支的基础语法规则,这是触发Syntax error at input ':'的主要原因,也是你调整缩进无法解决问题的核心原因。 - 虽然缩进不是本次报错的核心原因,但Pine Script要求多行表达式的续行缩进必须统一,不能随意调整为不同的缩进长度。
修复后的代码
punti = Scop > 0 and Scop >= DevMax ? 13 : Scop > 0 and Scop >= ScopMedian ? 10 : Scop > 0 and Scop >= DevMin ? 5 : Scop > 0 ? 1.0 : Scop < 0 and Scop >= DevMax ? -1.0 : Scop < 0 and Scop >= ScopMedian ? -5.0 : Scop < 0 and Scop >= DevMin ? -10.0 : Scop < 0 and Scop < DevMin ? -13.0 : na
多行三元运算符使用规范
- 三元运算符必须严格遵循
判断条件 ? 条件成立时返回值 : 条件不成立时的分支的结构,不能混淆?和:的位置 - 拆分多行书写时,必须将上一个分支的结束符
:放在上一行的末尾,不能挪到新行的开头 - 所有续行的缩进必须统一,建议统一使用4个空格,避免混合空格和制表符触发语法校验错误
内容的提问来源于stack exchange,提问作者360degree
相关产品推荐
相关产品推荐

