1
2pub fn largest(list: &[i32]) -> i32 {
3 let mut largest = list[0];
4 for item in list {
5 if *item > largest {
6 largest = *item;
7 }
8 }
9 largest
10}
11
12pub fn cal_largest() {
13 let list = [10, 20, 11, 23, 91];
14 let largest = largest(&list);
15 println!("The largest number is {}", largest);
16}
17
18
19pub fn largest_three<T: PartialOrd + Copy>(list: &[T]) -> T {
20 let mut largest = list[0];
21 for &item in list.iter() {
22 if item > largest {
23 largest = item;
24 }
25 }
26 largest
27}
28
29pub fn largest_four<T: PartialOrd + Clone>(list: &[T]) -> T {
30 let mut largest = list[0].clone();
31 for item in list.iter() {
32 if item > &largest {
33 largest = item.clone();
34 }
35 }
36 largest
37}
38
39pub fn largest_five<T: PartialOrd + Clone>(list: &[T]) -> &T {
40 let mut largest = &list[0];
41 for item in list.iter() {
42 if item > largest {
43 largest = item;
44 }
45 }
46 largest
47}
48
49pub fn cal_largest_two() {
50 let str_list = vec![String::from("hello"), String::from("world")];
51 let result = largest_five(&str_list);
52 println!("largest element is {}", result);
53
54}