首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用AssemblyScript在NEAR contract上使用PersistentUnorderedMap?初始化后,PersistentUnorderedMap不会出现在合同存储中

PersistentUnorderedMap 是 AssemblyScript 的一个数据结构,用于在 NEAR 合约中存储和管理无序的键值对。在 NEAR 合约中使用 PersistentUnorderedMap 需要经过以下步骤:

  1. 确保你的 NEAR 开发环境已经正确设置并安装了 AssemblyScript。可以通过 NEAR CLI 工具来完成这一步骤。
  2. 在你的项目中创建一个名为 assembly 的文件夹,用于存放 AssemblyScript 的代码文件。
  3. assembly 文件夹中创建一个新的 AssemblyScript 文件,命名为 persistent_unordered_map.ts
  4. persistent_unordered_map.ts 文件中引入 NEAR 相关的包和模块:
代码语言:txt
复制
import { PersistentUnorderedMap } from "near-sdk-as";
  1. 定义一个全局的持久化无序映射变量,用于存储数据:
代码语言:txt
复制
export const myMap = new PersistentUnorderedMap<string, string>("myMap");

这里创建了一个名为 myMap 的持久化无序映射,其中键的类型为 string,值的类型也为 string。你可以根据实际需求选择适合的类型。

  1. 在合约初始化函数中,你可以使用 set() 方法向持久化无序映射中添加键值对:
代码语言:txt
复制
export function init(): void {
  myMap.set("key1", "value1");
  myMap.set("key2", "value2");
}

在上述代码中,我们通过调用 set() 方法将键值对添加到 myMap 中。

  1. 在其他合约函数中,你可以通过 get() 方法从持久化无序映射中获取对应的值:
代码语言:txt
复制
export function getValue(key: string): string | null {
  return myMap.get(key);
}

在上述代码中,我们定义了一个名为 getValue 的函数,它接受一个参数 key,并通过调用 get() 方法返回对应的值。

  1. 如果你想删除某个键值对,可以使用 delete() 方法:
代码语言:txt
复制
export function deleteValue(key: string): void {
  myMap.delete(key);
}

在上述代码中,我们定义了一个名为 deleteValue 的函数,它接受一个参数 key,并通过调用 delete() 方法从持久化无序映射中删除对应的键值对。

  1. 最后,你可以在 NEAR 合约的存储中查看 PersistentUnorderedMap 的数据。注意,这些数据将被序列化并存储在链上的存储中。你可以使用 NEAR 的查询接口或工具来检查存储中的数据。

这样,你就可以使用 AssemblyScript 在 NEAR 合约中使用 PersistentUnorderedMap。请确保在编写和部署合约时,遵循 NEAR 的开发指南和最佳实践。

腾讯云相关产品推荐:

  1. 云函数(Serverless):提供无服务器计算服务,适合快速构建和部署无状态函数。
  2. 云数据库 CDB:可靠、可扩展、高性能的云数据库服务。
  3. 云原生容器服务 TKE:高度可扩展的容器管理服务,用于简化应用程序的部署和管理。
  4. 内容分发网络 CDN:提供高速、安全、稳定的全球覆盖的内容分发服务,加速内容传输和网站访问。

以上是对如何使用 AssemblyScript 在 NEAR contract 上使用 PersistentUnorderedMap 的完善且全面的答案。希望能对你有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券