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),
}
相关推荐
人邮异步社区几秒前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大34 分钟前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai1 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
এ慕ོ冬℘゜1 小时前
前端基础:什么是时间戳?JS获取时间戳三种方法与实战用途
开发语言·前端·javascript
执明wa1 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
一次旅行1 小时前
Python+大模型端到端自动化日报系统
开发语言·python·自动化
你想知道什么?2 小时前
线性回归-学习笔记
笔记·学习·线性回归
鱼毓屿御2 小时前
从「只会聊」到「边想边做」的跃迁
前端·学习·react.js
噢,我明白了2 小时前
java中Excel的导入和导出(EasyExcel)
java·开发语言·excel
AOwhisky3 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发