rust 学习 泛型

rust 复制代码
fn main() {
	let number_list = vec![1,2,23,34,8,100];
	let res = largest(&number_list);
	println!("{}",res);
	
	let p = Point{x:2.5,y:'c'};
	println!("{}---{}",&p.get_x(),&p.get_y());
	let p1 = p.create_point(Point{x:true,y:"wzg"});
	println!("{:#?}",p1)
}

//普通函数
fn largest<T:PartialOrd + Copy> (list:&[T]) -> T {
    let mut larger = list[0];
    for &item in list.iter() {
        if item > larger {
            larger =item;
        }
    }
    larger
}

//结构体
#[derive(Debug)]
struct Point<T,U> {
    x: T,
    y: U,
}

impl<T,U> Point<T,U> {
    fn get_x(&self) -> &T {
        &self.x
    }
    
    fn get_y(&self) -> &U {
        &self.y
    }
    
    fn create_point<M,N>(self,other: Point<M,N>) -> Point<T,N> {
        Point {
            x:self.x,
            y:other.y,
        }
    }
    
}

//枚举
enum Option<T>{
    Some(T),
    None,
}

enum Result<T,E> {
    Ok(T),
    Err(E),
}
相关推荐
一条小小yu24 分钟前
基于数据库唯一索引 + 过期时间的分布式锁
学习
传奇开心果编程43 分钟前
【ArkUI 练中学】第15课:UI 界面设计与实战
学习·ui·华为·harmonyos
传奇开心果编程2 小时前
【springboot基础语法学与练】第 1 课:从零开始
java·spring boot·后端·学习
Bruce_Liuxiaowei2 小时前
Python 实例赋值遮蔽类属性:一个从不报错的静默陷阱
开发语言·python·语法糖
扶风ff3 小时前
练题簿小程序:家庭在线练题,课后复习更简单
学习·小程序
传奇开心果编程3 小时前
【Flutter入门练中学】第2课:布局系统
学习·flutter·ui
梦醒沉醉3 小时前
std1.97.1——cmp模块细览
rust
彧azz3 小时前
Linux 网络编程学习总结
linux·网络·笔记·学习·面试
一尘之中3 小时前
指挥控制中心与指控系统:概念、应用、厂商与DDS技术全景
学习·架构·ai写作
aramae4 小时前
MySQL内置函数(7)
开发语言·笔记·后端·mysql·其他