Hello
I am a beginner and I would like to a generic function that works for all of the vectors (longer_vector) and not to write a function for each datatype (longer_vector_int, longer_vector_string....).
Example Code:
fn main() {
let v1 = vec!['a','b','c','d'];
let v2 = vec!['x','y','z'];
println!("{:?}", longer_vector_char(&v1, &v2));
let v3 = vec![1,2,3,4,5,6];
let v4 = vec![1,2,3,4,5,6,7];
println!("{:?}", longer_vector_int(&v3, &v4));
let v5 = vec!["xTEST1".to_string(),"TEST2".to_string(),"TEST3".to_string(),"TEST4".to_string()];
let v6 = vec!["TestX".to_string(), "TestY".to_string(), "TESTzzzz".to_string()];
println!("{:?}", longer_vector_string(&v5, &v6));
println!("{:?}", longer_vector(&v1, &v2));
println!("{:?}", longer_vector(&v3, &v4));
println!("{:?}", longer_vector(&v5, &v6));
}
// THIS DOESN'T SEEM TO WORK, WHAT AM I DOING WRONG
fn longer_vector<T: 'a>(x: &'a[T], y: &'a[T]) -> &'a[T] {
if x.len() > y.len() { x } else { y }
}
fn longer_vector_int<'a>(x: &'a[i32], y: &'a[i32]) -> &'a[i32] {
if x.len() > y.len() { x } else { y }
}
fn longer_vector_char<'a>(x: &'a[char], y: &'a[char]) -> &'a[char] {
if x.len() > y.len() { x } else { y }
}
fn longer_vector_string<'a>(x: &'a[String], y: &'a[String]) -> &'a[String] {
if x.len() > y.len() { x } else { y }
}
thank you for your help
Marc