Created
July 29, 2017 13:24
-
-
Save medwards/9233bb1dc0f935144860f2ea76f0b931 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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