最新要闻
- 数学家的小故事五十字_50 100字数学家的小故事
- 焦点播报:曾致2死3伤 特斯拉潮州事故鉴定结果已出:目前不会进行公布
- 微软与谷歌正面扳手腕:计划推出自家移动应用商店
- 【世界时快讯】放生大鱼游回岸边“致谢”放生者?别自作多情了 800万粉大V科普
- 焦点热议:卷死燃油车!新能源价格战打起来了:“迪王”都已坐不住
- 长安控诉银河之光抄袭背后 两家车企的设计师都是陈政
- 索尼WF-1000XM4降噪豆发布新固件:可同时连接2台设备
- 全球报道:女子帮网友表白:单日收入过万
- 享36个月超长质保!魅族20系列1元超前预订开启:立省699元
- 《福星小子》新动画角色公开 3月2日最新话登场
- 身材抢眼!75岁“终结者”施瓦辛格首演电视剧:经典台词“我回来了”
- 要闻:全新起亚K3开启预售 新款起亚K3怎么样?
- 今热点:只要78元!《元能失控》登陆任天堂国行Switch:支持多人联机 太罕见
- 今日热闻!累计订单已超5万!比亚迪豪华MPV腾势D9 EV官宣涨价6000元
- 送女神绝佳好礼 好吃还能发圈!榴芒一刻礼盒大促:立减179元
- 环球速讯:恐怖!男子酒后吃布洛芬致皮肤大面积剥脱 医生:重度药疹
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
Rust 知识积累(2)
impl 块
调用 struct 或 enum 上的函数,请使用 impl 块
struct使用impl调用
// 声明struct结构体struct Animal { age: u8}// 实现结构体impl Animal { // 声明new方法,返回自己,类似于this fn new() -> Self { Self { age:10, } } // 自我赋值 fn change_to(&mut self) { age = 11; }}fn main() { // 实例化 let mut new_animal = Animal::new(); new_animal.change_to();}
enum使用impl调用
(相关资料图)
// 声明枚举enum Mood { Good, Bad, Sleepy,}// 实例化impl Mood { fn check(&self) { match self { Mood::Good => println!("Feeling good!"), Mood::Bad => println!("Eh, not feeling so good"), Mood::Sleepy => println!("Need sleep NOW"), } }}// 调用fn main() { let my_mood = Mood::Sleepy; my_mood.check();}
{:?}使用方法
truct或enum中,如果你想使用{:?}来打印,你需要给它Debug,所以我们将这样做:如果你在结构体或枚举上面写了#[derive(Debug)],那么你就可以用{:?}来打印。这些带有#[]的信息被称为属性
use std::fmt::Debug;引用后打印的使用{:?}use std::fmt::Display;引用后打印的使用{}
解构
struct Person{ name:String,}let per = Person{name:"Wang".to_string()};let Person{ name, // 或者name:a 前者可直接使用name,后者使用a变量 }=pre;
引用 *和& 以及点引用
用&后,可直接使用点来获得数值
struct Item { number: u8,}fn main() { let item = Item { number: 8, }; let reference_item = &item; reference_item.number == 8 // true}
泛型
// 1.基础fn return_number(number: T) -> T { number}// 2.Debug模式use std::fmt::Debug; // Debug is located at std::fmt::Debug. So now we can just write "Debug".fn print_number(number: T) { // is the important part println!("Here is your number: {:?}", number);}// Display模式+多个泛型+声明PartialOrd进行两个数比较use std::fmt::Display;use std::cmp::PartialOrd;fn compare_and_display(statement: T, num_1: U, num_2: U) { println!("{}! Is {} greater than {}? {}", statement, num_1, num_2, num_1 > num_2);}
异常 (unwrap 类似于拆盲盒,指不定就有None)
Option
// 判断后返回None或者Some(数值)fn take_fifth(value: Vec
) -> Option { if value.len() < 5 { None } else { Some(value[4]) }}// 比对Optionfn handle_option(my_option: Option ) { match item { Some(number) => println!("Found a {}!", number), None => println!("Found a None!"), }}// 比对Option也可通过if take_fifth(vec![1,2]).is_some() { take_fifth(vec![1,2]).unwarp();//该值一定不是None} Result
// Option大约是Some或None(有值或无值)。// Result大约是Ok或Err(还好的结果,或错误的结果)。enum Option
{ None, Some(T),}enum Result { Ok(T), Err(E),}// 从city中遍历while let Some(information) = city.pop(){} // 将information转化为i32 并判断是否错误if let Ok(number) = information.parse:: () {}
HaspMap 和 BTreeMap
HaspMap 和 BTreeMap 用法一致
区别1:
HashSet和BTreeSet 只有key的HashMap,类似于java的List (use std::collections::HashSet;)
区别2:BTreeMap 默认排序(key)
use std::collections::HashMap;let mut population: HashMap
= HashMap::new();population.insert(1,3);for (key, value) in population{}population[key] //获得value,不过容易出现None 返回的是数值population.get(key) //当key么有value时,会出现None 返回的是Option// pub fn entry(&mut self, key: K) -> Entry /* fn or_insert(self, default: V) -> &mut V { match self { Occupied(entry) => entry.into_mut(), Vacant(entry) => entry.insert(default), }}*/ let address = population.entry(key).or_insert(value)*address == value //true// 相同key的value数组population.entry(key).or_insert(Vec::new()).push(value)
二叉堆 BinaryHeap (use std::collections::BinaryHeap;)
使用距离
BinaryHeap::new();push() pop()每次拿最大的
VecDeque
VecDeque 类似于Vec,拿取两端数据时比Vec快
VecDeque::from(vec![0; 600000]); my_vec.pop_front();// 只能从头或者从尾拿
panic! 中断宏
// 断言assert!(bool, msg): 如果()里面的部分不是真的, 程序就会崩溃.assert_eq!(key1, key2, msg):()里面的两个元素必须相等。assert_ne!(key1, key2, msg):()里面的两个元素必须不相等。(ne表示不相等)
expect
- expect 可等价替换unwrap,不过expect(msg),出现错误会显示msg
trait(特性)
struct Wizard {}struct Ranger {}trait FightClose { fn attack_with_sword(&self, opponent: &mut Monster) { opponent.health -= 10; println!( "You attack with your sword. Your opponent now has {} health left.", opponent.health ); } fn attack_with_hand(&self, opponent: &mut Monster) { opponent.health -= 2; println!( "You attack with your hand. Your opponent now has {} health left.", opponent.health ); }}impl FightClose for Wizard {}impl FightClose for Ranger {}fn main() { let radagast = Wizard {}; let aragorn = Ranger {}; radagast.attack_with_sword(&mut uruk_hai); aragorn.attack_with_bow(&mut uruk_hai, 8);}
Form trait
use std::convert::From;struct EvenOddVec(Vec>);impl From> for EvenOddVec { fn from(input: Vec) -> Self { let mut even_odd_vec: Vec> = vec![vec![], vec![]]; // A vec with two empty vecs inside // This is the return value but first we must fill it for item in input { if item % 2 == 0 { even_odd_vec[0].push(item); } else { even_odd_vec[1].push(item); } } Self(even_odd_vec) // Now it is done so we return it as Self (Self = EvenOddVec) }}fn main() { let bunch_of_numbers = vec![8, 7, -1, 3, 222, 9787, -47, 77, 0, 55, 7, 8]; let new_vec = EvenOddVec::from(bunch_of_numbers); println!("Even numbers: {:?}\nOdd numbers: {:?}", new_vec.0[0], new_vec.0[1]);}
AsRef
use std::fmt::{Debug, Display}; // add Debugfn print_it(input: T) // Now this line is easy to readwhere T: AsRef + Debug + Display, // and these traits are easy to read{ println!("{}", input)}fn main() { print_it("Please print me"); print_it("Also, please print me".to_string());}
-
环球观速讯丨Luffy项目:3、前端调整(全局css、全局配置、全局axios...),后端主页轮播图表设计,接口部分代码编写
Luffy项目一、luffy项目前端调整1、全局css目的:取消标签自带的样式,方便后期制作前端页面操作步骤:-...
来源: Rust 知识积累(2)
环球观速讯丨Luffy项目:3、前端调整(全局css、全局配置、全局axios...),后端主页轮播图表设计,接口部分代码编写
世界热消息:pycharm破解版
环球精选!变量处理中的标准化方法
数学家的小故事五十字_50 100字数学家的小故事
焦点播报:曾致2死3伤 特斯拉潮州事故鉴定结果已出:目前不会进行公布
微软与谷歌正面扳手腕:计划推出自家移动应用商店
【世界时快讯】放生大鱼游回岸边“致谢”放生者?别自作多情了 800万粉大V科普
焦点热议:卷死燃油车!新能源价格战打起来了:“迪王”都已坐不住
长安控诉银河之光抄袭背后 两家车企的设计师都是陈政
高并发场景下常见的限流算法及方案介绍
组合数学笔记-计数原理
索尼WF-1000XM4降噪豆发布新固件:可同时连接2台设备
全球报道:女子帮网友表白:单日收入过万
享36个月超长质保!魅族20系列1元超前预订开启:立省699元
《福星小子》新动画角色公开 3月2日最新话登场
身材抢眼!75岁“终结者”施瓦辛格首演电视剧:经典台词“我回来了”
记录--如何优雅地校验后端接口数据
世界今亮点!New Bing怼人、说谎、PUA,ChatGPT已经开始胡言乱语了
要闻:全新起亚K3开启预售 新款起亚K3怎么样?
今热点:只要78元!《元能失控》登陆任天堂国行Switch:支持多人联机 太罕见
今日热闻!累计订单已超5万!比亚迪豪华MPV腾势D9 EV官宣涨价6000元
送女神绝佳好礼 好吃还能发圈!榴芒一刻礼盒大促:立减179元
环球速讯:恐怖!男子酒后吃布洛芬致皮肤大面积剥脱 医生:重度药疹
焦点滚动:另起炉灶?马斯克怒批ChatGPT 欲开发替代品
全球播报:Rust 知识积累(1)
世界百事通!让WPF中的DataGrid像Excel一样可以筛选
全球头条:Codeforces Round #854 by cybercats (Div. 1+2) 1799 A~G 题解
全球报道:2363. 合并相似的物品
【天天速看料】c语言运算符优先级实例解析
资讯:建设银行e路通不用了直接扔了吗_建设银行e路通
恐怕人类永远也搞不定真正的AI!
环球时讯:黄仁勋带着NVIDIA新品发布会来了!RTX 4070梦碎
大量年轻人成为“果粉” :苹果连三星大本营都快攻陷了
精选!AGM G2 Guardian发布:全球首款500米范围热成像手机
全球时讯:不怕停电了?董明珠:格力开始研究将储能技术应用冰箱上
新消息丨.NET MAUI
外敷仙人掌的禁忌和副作用_外敷仙人掌的禁忌
环球热文:官宣定档3月6日 领创科技旗舰荣耀Magic5系列即将国内亮相
需要去看医生的呼噜声什么样?这三种情况要特别注意:有危险
蔚来:阿尔卑斯全系车型采用800V方案 还将共享使用三代换电站
【全球新视野】男子反复发烧20多天被诊出黑热病:发病率仅0.0108/10万
环球快报:一加Buds Pro 2轻享版上架:48dB深度降噪
今热点:11 款顶级 MySQL 图形化工具汇总,总有一款适合你!(建议收藏)
【速看料】Python实战项目3-前后端连接/首页轮播图表设计
热头条丨剑指 Offer 55 - II. 平衡二叉树(java解题)
焦点速讯:安装node并创建vue项目
报告称每天工作超8小时心脏病风险增8成:很多公司拒绝996、启用四天工作制
比亚迪专业个性化品牌曝光:首车性能对标奔驰大G 年内发布
苹果将成本转嫁给果粉!2024年iPad Pro要大涨价
LOL帧率近乎翻倍!Intel Arc A750新驱动测试:大幅提升、最大短板没有了
丰田有队友了!宝马氢燃料SUV将路试:16磅氢能跑500公里
世界速读:CSS中的BFC、IFC、GFC、FFC
环球即时:Synchronized,我要一层一层剥开你的心
全球视点!轻松玩转makefile|基础知识
环球聚焦:曝吴秀波儿子家暴成性,女方晒照满嘴是血,指证男方出轨乱约
周杰伦演唱会数百万人疯抢!演唱会门票30秒卖光
环球新资讯:长安发律师函控诉银河之光抄袭 吉利回应:毫无根据、误导公众
环球微速讯:【同步、共享和内容协作软件】上海道宁与ownCloud让您的团队随时随地在任何设备上轻松处理数据
全白外观拥有硬核实力!影驰Z790金属大师D5 Wi-Fi白金版主板评测:内存轻松提速10%
环球快讯:越来越多PC用户不愿买显卡了:2022年Q4桌面独显销量暴跌43%
世界第一次!中国空间站看到了在轨航天员的“三维皮肤”
【时快讯】89元 小米无线键鼠套装2上架:鼠标轻至45g
环球精选!运酒撞破酒缸1分钟损失5万!男子:一坛酒1000斤 1斤50块钱
天天快看点丨易基因|独家分享:高通量测序后的下游实验验证方法——DNA甲基化篇
IPO参考:联域光电拟深市主板IPO 郝氏控股二次递表港交所
【全球快播报】感冒的食疗偏方秘方_感冒的食疗偏方
8尺夫人面对面!《生化危机8 VR》IGN 8分 MTC用户9.7分
环球热点评!40多万的车没有语音控制功能!宝马遭X3车主集体投诉
今日聚焦!一加Ace 2V搭载旗舰级2.8D微弧玻璃:手感温润如玉
世界讯息:续航1整年!小米智能门锁M20大屏猫眼版开售:首发1899元
世界要闻:《艾尔登法环》原子之心机械姐妹花Mod 性感吸睛
自得其乐是什么意思?自得其乐的名人例子有哪些?
12%是零点几?12%公积金是什么档次?
给据邮件是什么意思?给据邮件如何填写?
男主角性格冰冷的小说有哪些?男主角性格冰冷的小说推荐
兔子能喝牛奶吗?兔子吃的食物有哪些?
小米手机屏幕校准在哪里?小米手机屏幕有多大?
集成显卡可以玩英雄联盟吗?集成显卡和独立显卡有什么区别?
华为mate9哪一年生产的?华为mate9参数配置
可视化图表之奥妙——百分比堆积条形图
看热讯:基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v6.2版已发布
常用的xpath
环球观察:mybatis plus映射postgreSQL数组
世界资讯:redis实现用户查询次数限制
军用三防手机有哪些?军用三防手机推荐
苏泊尔电磁炉滴滴响不加热是什么原因?苏泊尔电磁炉滴滴响不加热怎么解决?
最新资讯:完美全面屏!努比亚Z50 Ultra官宣3月7日发布
新消息丨控告抄袭!长安给吉利发去律师函
【环球新要闻】BBA压力来了!李想:今年理想将挑战30-50万豪华SUV市场20%份额
环球快消息!SRC挖掘之Access验证校验的漏洞挖掘
【世界热闻】tomcat源码分析(一)如何启动服务
协同办公领域未来三大趋势(协同办公带来的机遇)
彻底理解 HashMap 及 LinkedHashMap,面试官请随便问!
当前焦点!轻量级CI/CD发布部署环境搭建及使用_02_docker安装jenkins
世界微速讯:理想汽车2022年亏损额创新高达20.32亿元
天天热议:腾势D9首创双枪充电 赵长江:比高压充电更节省社会成本
当前视讯!DXO排名全球第一!京东方认领荣耀Magic5/Pro屏幕
【全球播资讯】史诗级更新!雷军:小米12S Ultra 2倍变焦快捷按键正式上线
环球时讯:巧妙利用“慧言”机器人在安全场景中实践