assemblyscript - 如何在 AssemblyScript / Near 中打印数组的长度?
问题描述
我正在附近尝试简单的汇编脚本,似乎找不到打印数组长度的方法。这是最小的复制品:
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
,例如以下代码段编译并工作:
let a: i32 = 5;
logging.log(a.toString());
解决方案
问题是汇编脚本类型解析器无法解析某些类型的表达式,但此问题已在上游汇编脚本中的https://github.com/AssemblyScript/assemblyscript/pull/726中修复。当我们更新编译器时,我们将为智能合约解决这个问题。目前,解决方法是使用临时变量:
let a = new Array<string>();
let l = a.length;
logging.log(l.toString());
推荐阅读
- c# - 通过 CLR 使用 C++ 项目中的 C# dll - 是否有 LoadLibrary 和 GetProcAddress 函数的类似物?
- trace32 - 劳特巴赫脚本:检查程序是否在断点处停止
- mysql - mysql高性能问题
- python - PyQt/ Python - 延迟播放音频文件列表
- python - 连接到数据库时pyodbc中的接口错误
- php - PHP 表示主图
- python - 使用带有图像标签的 csv 文件从文件夹中获取特定图像
- php - 在今天的错误日志文件中记录前一天的 PHP 日志错误
- vega-lite - vega-lite 中的动态尺度域
- android - 如果数据库中没有任何内容,如何显示“无数据”吐司