aolifu_rust/
function.rs

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}