rust match 的问题0001

https://rust.cc/article?id=143b7d22-f7d7-48cf-a945-3b0b5f22c360 抱歉啊,还是没有明白,我把问题再简化一下啊: #[test] fn test_result_0003(){ use std::num::ParseIntError; let my_result : Result ; let number_str = "10"; my_result = number_str.parse::(); // type_of 是自定义的 std::any::type_name 函数 // println!("type is:{}", type_of(my_result)); // type is : core::result::Result //问题: 既然 my_result 是 Result 类型,为什么match还是会有这个错误呢 // let number = match my_result { Ok(number) => number, Err(e) => e , //^ expected i32, found struct std::num::ParseIntError }; println!("{}", number); } 我的问题: 1)my_result 的类型是( 运行时的类型 ): type is : core::result::Result 2)那么 match my_result 在编译的时候,为什么还是提示:     Err(e) => e , //^ expected i32, found struct std::num::ParseIntError       match 匹配 Result 应该说: , T和E 只要一个符合就可以吧.