ErgoScript中Coll.filter使用报错,咨询可用性及文档正确性
ErgoScript Coll.filter 使用问题解答
1. ErgoScript 是否支持 Coll.filter 函数?
支持,但你的代码因Lambda参数未显式声明类型触发了解析错误。ErgoScript是静态类型语言,Lambda表达式的参数必须指定明确类型,无法像Scala那样自动推断。
你的代码中dataInputBox.tokens是Coll[(Coll[Byte], Long)]类型(每个元素是代币的(资产ID, 数量)元组),修正后的代码如下:
val isNftInDataInputBox: Boolean = dataInputBox.tokens.filter((token: (Coll[Byte], Long)) => token._1 == outProfileBox.R5[Coll[Byte]].get).nonEmpty
2. 你提供的Coll相关文档是否正确?
正确。该文档是SigmaState解释器的核心实现代码,ErgoScript基于SigmaState构建,其中定义的filter等集合操作均为ErgoScript的标准支持API。但要注意:文档中的Scala实现语法和ErgoScript存在差异,编写ErgoScript时必须遵循自身语法规则(比如静态类型要求),不能直接照搬Scala写法。
内容的提问来源于stack exchange,提问作者kii
相关产品推荐
相关产品推荐

