相关疑难解决方法(0)

如何将两个变量之间的双向关系存储为第三个变量?

我有一系列国家,我想产生这些国家之间的关系,因此国家A和国家B之间的关系总是与国家B和国家A之间的关系相同.

例如,日本和厄瓜多尔有15.我希望能够同时运行的关系值get_relationship("Japan", "Ecuador");,并get_relationship("Ecuador", "Japan");始终得到15.理想情况下,我不想将此值存储两次,因为我不想打扰它保持同步.

以下是我目前的实验代码.请注意,我储存的国家作为HashMap(name as String, Nation as struct)不相干的原因,主要是让我能拉起所需的Nation单独的名字对象.

extern crate rand;

use std::collections::HashMap;
use rand::Rng;

struct Nation;

pub struct NationManager {
    nations: HashMap<String, Nation>, // The string is the nation's name
    rels: HashMap<String, HashMap<String, i8>>, // Again, both Strings are names
}

impl NationManager {
    fn generate_relationships(&mut self) {
        let mut random_rel: i8 = rand::thread_rng().gen_range(1, 101);
        for (source, _) in &self.nations {
            for (target, _) in …
Run Code Online (Sandbox Code Playgroud)

rust

0
推荐指数
1
解决办法
172
查看次数

标签 统计

rust ×1