【发布时间】:2022-01-25 03:48:21
【问题描述】:
我已经阅读了这篇文章here 并且我了解到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 的新手,你能帮忙吗?
谢谢。
【问题讨论】:
-
这是 Rust 代码吗?如果是这样,您将代码放在函数的参数中,这只是无效的语法。您应该将所有这些都放在正文中 - 例如,在
msg!(...);之后。 -
是的,它是 Rust。谢谢你的提示,不知道这个,会试试:)