首页 > 解决方案 > 在 rust 中迭代 yaml 数组

问题描述

嗨,我有一个 yaml 数组,我想在 rust 中迭代,这是 yaml 数组:

schedules: 
  - 8:00-9:10
  - 9:30-10:40
  - 11:00-12:10
  - 16:20-17:30
  - 15:00-16-10

这是我已经得到的代码:

extern crate yaml_rust;
use std::fs::read_to_string;
use yaml_rust::{YamlLoader};
fn main() {
    let config = read_to_string("config.yaml").unwrap();
    let docs = YamlLoader::load_from_str(&config).unwrap();
    let doc = &docs[0];
    let schedules = &doc["schedules"];
}

我将如何进行迭代schedules

我尝试将其转换为哈希图(使用.as_hash().unwrap()我看到的其他帖子),但它说: thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src/main.rs:8:49

标签: rustyaml

解决方案


yaml_rust将数组表示为向量。Vec您可以使用该方法将 YAML 节点转换为 a as_vec。如果节点不是数组,as_vec将返回None

for schedule in schedules.as_vec().unwrap() {
    schedule.do_stuff()
}

推荐阅读