fn extract_number(s: &str) -> u32 {
let pos = s.rfind(' ').unwrap();
s[pos + 1..].parse::<u32>().unwrap()
}
fn main() {
let mut v = vec![
"Python 4".to_string(),
"C 9".to_string(),
"C++ 5".to_string(),
"C# 6".to_string(),
"Java 1".to_string(),
"PHP 7".to_string(),
"Go 2".to_string(),
];
v.sort_by_key(|s| extract_number(s));
println!("{v:?}");
}
/*
run:
["Java 1", "Go 2", "Python 4", "C++ 5", "C# 6", "PHP 7", "C 9"]
*/