Skip to content

Instantly share code, notes, and snippets.

@medwards
Created July 29, 2017 13:24
Show Gist options
  • Save medwards/9233bb1dc0f935144860f2ea76f0b931 to your computer and use it in GitHub Desktop.
Save medwards/9233bb1dc0f935144860f2ea76f0b931 to your computer and use it in GitHub Desktop.
use std::cmp::PartialOrd;
fn largest<T: PartialOrd + Copy>(list: &[T]) -> T {
let mut largest = list[0];
for &item in list.iter() {
if item > largest {
largest = item;
}
}
largest
}
fn main() {
let numbers = vec![34, 50, 25, 100, 65];
let result = largest(&numbers);
println!("The largest number is {}", result);
let chars = vec!['y', 'm', 'a', 'q'];
let result = largest(&chars);
println!("The largest char is {}", result);
}
// turned into
use std::cmp::PartialOrd;
fn largest<'a, T: PartialOrd>(list: &[T]) -> &T {
let mut largest = list[0];
for &item in list.iter() {
if item > largest {
largest = item;
}
}
&largest
}
fn main() {
let numbers = vec![34, 50, 25, 100, 65];
let result = largest(&numbers);
println!("The largest number is {}", result);
let chars = vec!['y', 'm', 'a', 'q'];
let result = largest(&chars);
println!("The largest char is {}", result);
let strings = vec!["foo".to_string(), "bar".to_string(), "baz".to_string()];
let result = largest(&strings);
println!("The largest string is {}", result);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment