gpt4 book ai didi

hashmap - 无法将字符串以外的值添加到嵌套 HashMap

转载 作者:行者123 更新时间:2023-11-29 08:23:36 26 4
gpt4 key购买 nike

我想创建一个具有嵌套结构的 HashMap,就像这个复杂的示例:

{
type: boy
name: Phineas
father:
type: man
name: Lawrence
}

在 Rust 中,这将是:

use std::collections::HashMap;

let mut lawrence = HashMap::new();
lawrence.insert("type", "man");
lawrence.insert("name", "Lawrence");
let mut phineas = HashMap::new();
phineas.insert("type", "boy");
phineas.insert("name", "Phineas");
phineas.insert("father", lawrence);

但是HashMap 值似乎只能是字符串;如果我尝试编译我得到:

expected &str, found struct `std::collections::HashMap`

我查看了文档,但找不到构建类似数据结构的简单解决方案。

最佳答案

我假设您来自动态类型语言。在那种情况下,您真的需要通读 Rust Book ,因为 Rust 是一个非常不同的野兽。 Rust 是静态类型的,所以您在这里尝试做的几乎是行不通的,而且绝对不是您打算使用该语言的方式。

在这种特殊情况下,没有简单的答案,因为我不知道您的目标是什么。 Rust 中的数据结构建模是通过 struct 的组合完成的小号,enum s,VecHashMap 等集合,Option 等实用类型,以及 Box 等各种指针类型,Rc, etc. 您需要哪些具体组合取决于您要表示的内容、您打算如何构建它以及您打算如何使用它。

一个可能的表述是:

struct Person {
kind: PersonKind,
name: String,
father: Option<Box<Person>>,
}

enum PersonKind {
Boy,
Man,
}

关于hashmap - 无法将字符串以外的值添加到嵌套 HashMap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49250607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com