fn main() { let number_list = [34, 1, 3, 6]; let result = largest(&number_list); println!("{}", result); } fn largest(list: &[i32]) -> i32 { let mut largest = list[0]; for &item in list {//item不加&就是对&i32 在item前面价格&,&item类型就是i32 相当于发生了解构 if item > largest { largest = item } } largest }
struct Point<T> { x: T, } impl<T> Point<T> { fn get_x(&self) -> &T { &self.x } } impl Point<i32> { fn get_x1(&self) -> &i32 { &self.x } } fn main() { let p = Point { x: 1 }; println!("p.x={}", p.get_x()); println!("p.x={}", p.get_x1()); }
fn main() { let p1 = Point { x: 5, y: 4 }; let p2 = Point { x: "hello", y: 'c' }; let p3 = p1.mix_up(p2); println!("p3.x = {}, p3.y = {}", p3.x, p3.y); } struct Point<T, U> { x: T, y: U, } impl<T, U> Point<T, U> { fn mix_up<V, W>(self, other: Point<V, W>) -> Point<T, W> { Point { x: self.x, y: other.y, } } } p3.x = 5, p3.y = c