如何在 AssemblyScript / Near 中打印数组的长度?
Posted
技术标签:
【中文标题】如何在 AssemblyScript / Near 中打印数组的长度?【英文标题】:How to print the length of an array in AssemblyScript / Near? 【发布时间】:2020-01-13 19:13:56 【问题描述】:我正在附近尝试使用简单的汇编脚本,但似乎找不到打印数组长度的方法。这是最小的复制品:
let a = new Array<string>();
logging.log(a.length.toString());
不能用
编译ERROR TS2339: Property 'toString' does not exist on type 'i32'.
logging.log(a.length.toString());
~~~~~~~~
in assembly/main.ts(171,23)
虽然toString()
明显存在于i32
,例如以下 sn-p 编译并工作:
let a: i32 = 5;
logging.log(a.toString());
【问题讨论】:
【参考方案1】:问题是汇编脚本类型解析器无法解析某些类型的表达式,但此问题已在上游汇编脚本中的https://github.com/AssemblyScript/assemblyscript/pull/726 处得到修复。当我们更新编译器时,我们将为智能合约解决这个问题。目前,解决方法是使用临时变量:
let a = new Array<string>();
let l = a.length;
logging.log(l.toString());
【讨论】:
以上是关于如何在 AssemblyScript / Near 中打印数组的长度?的主要内容,如果未能解决你的问题,请参考以下文章
使用纱线部署留言簿时,NEAR 上的 AssemblyScript:`/bin/sh:asb: command not found`
near-example/workshop--exploring-assemblyscript-contracts/assembly/A.sample-projects/04.token-contra
Near-example/workshop--exploring-assemblyscript-contracts/assembly/A.sample-projects/04.token-contra