[英]Solana Rust program BTreeMap
我在这里阅读了这篇文章,我了解到 HashMap 在 Solana 中不可用,因此我需要使用 BTreeMap。 我是 Rust 的初学者,在尝试从以太坊迁移到 Solana 时出现以下代码错误:
pub fn constructor (
let mut DomainsToIndex = BTreeMap::new();
Domains[] pub DomainList;
contractOwner = msg.sender;
firstDomain.name = "empty";
firstDomain.IP = "n/a";
firstDomain.owner = 0;
firstDomain.lockTime = 0;
firstDomain.infoDocumentHash = "n/a";
DomainsToIndex.insert(String::from(firstDomain.name), 0);
DomainList.push(firstDomain);
) -> ProgramResult {
msg!("First domain was added by default");
Ok(())
}
我当然在文件顶部添加了导入:
use std::collections::BTreeMap;
根据下图,我在使用cargo build时收到的错误如下:
我想我做的不对,因为我是 Rust 的新手,你能帮忙吗?
谢谢。
代码有几个语法问题。 应用程序 arguments 应该与正文分开,没有结构的pub
也没有意义。
不幸的是,他们的 Rust 接口的文档非常缺乏(似乎主要是“看看一些示例,然后通过反复试验找出 rest”)。 所以我无法查找足够的信息来建议一个合理正确的版本。
这里还有几个指针:
sender
成员的msg
object,但我可以识别的唯一等效项是标识调用帐户的&[AccountInfo]
参数。我建议从他们的Hello World示例开始,稍微玩一下,一旦您更熟悉 Rust 语法和 Solana 最佳实践,就继续使用您自己的应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.