rust index

use std::collections::HashMap;
use std::ops::Index;
#[derive(Debug,Clone)]
struct Cell{
    name:String
}
type Col = HashMap<String, Vec<Cell>>;
#[derive(Debug,Clone)]
struct DF{
    columns: Vec<Col>
}

impl Index<&str> for DF{
    type Output = i32;
    fn index(&self, c:&str)->&i32 {
        println!("索引字符是: {}", &c);

        &2_i32
    }
}

fn main() {
    let mut a = HashMap::new();
    a.insert(String::from("A"), vec![Cell{name:String::from("A1")}, Cell{name:String::from("A2")}]);
    let mut b = HashMap::new();
    b.insert(String::from("B"), vec![Cell{name:String::from("B1")}, Cell{name:String::from("B2")}]);
    let df = DF{ columns:vec![a, b]};
    println!("{:?}", df["C"]);
}

  

posted @ 2022-07-20 15:20  CrossPython  阅读(44)  评论(0编辑  收藏  举报