RustDay06------Exercise[81-90]

2023-10-22 07:44
文章标签 ------ 90 81 exercise rustday06

本文主要是介绍RustDay06------Exercise[81-90],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

81.宏函数里面的不同的匹配规则需要使用分号隔开

// macros4.rs
//
// Execute `rustlings hint macros4` or use the `hint` watch subcommand for a
// hint.// I AM NOT DONE#[rustfmt::skip]
macro_rules! my_macro {() => {println!("Check out my macro!");};($val:expr) => {println!("Look at this other macro: {}", $val);};
}fn main() {my_macro!();my_macro!(7777);
}

82.使用内部封装好的宏来替代某些常数

// clippy1.rs
//
// The Clippy tool is a collection of lints to analyze your code so you can
// catch common mistakes and improve your Rust code.
//
// For these exercises the code will fail to compile when there are clippy
// warnings check clippy's suggestions from the output to solve the exercise.
//
// Execute `rustlings hint clippy1` or use the `hint` watch subcommand for a
// hint.// I AM NOT DONEuse std::f32;fn main() {let pi = f32::consts::PI;// 3.14f32;let radius = 5.00f32;let area = pi * f32::powi(radius, 2);println!("The area of a circle with radius {:.2} is {:.5}!",radius, area)
}

83.if let回顾

// clippy2.rs
// 
// Execute `rustlings hint clippy2` or use the `hint` watch subcommand for a
// hint.// I AM  DONEfn main() {let mut res = 42;let option = Some(12);if let Some(x)=option {res += x;}println!("{}", res);
}

84.按照提示修改

这题说明 resize是原地操作 没有返回值

交换值必须要借助中间变量

// clippy3.rs
// 
// Here's a couple more easy Clippy fixes, so you can see its utility.
//
// Execute `rustlings hint clippy3` or use the `hint` watch subcommand for a hint.// I AM NOT DONE#[allow(unused_variables, unused_assignments)]
fn main() {let my_option: Option<()> = None;// if my_option.is_none() {//     my_option.unwrap();// }let my_arr = &[-1, -2, -3,-4, -5, -6,];println!("My array! Here it is: {:?}", my_arr);let my_empty_vec = vec![1, 2, 3, 4, 5];println!("This Vec is empty, see? {:?}", my_empty_vec);let mut value_a = 45;let mut value_b = 66;// Let's swap these two!let mut temp =0;temp=value_a;value_a = value_b;value_b = temp;println!("value a: {}; value b: {}", value_a, value_b);
}

85.使用as强制转换类型

// using_as.rs
//
// Type casting in Rust is done via the usage of the `as` operator. Please note
// that the `as` operator is not only used when type casting. It also helps with
// renaming imports.
//
// The goal is to make sure that the division does not fail to compile and
// returns the proper type.
//
// Execute `rustlings hint using_as` or use the `hint` watch subcommand for a
// hint.// I AM NOT DONEfn average(values: &[f64]) -> f64 {let total = values.iter().sum::<f64>();total / values.len() as f64
}fn main() {let values = [3.5, 0.3, 13.0, 11.7];println!("{}", average(&values));
}#[cfg(test)]
mod tests {use super::*;#[test]fn returns_proper_type_and_value() {assert_eq!(average(&[3.5, 0.3, 13.0, 11.7]), 7.125);}
}

86.

这篇关于RustDay06------Exercise[81-90]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/260051

相关文章

90、k8s之secret+configMap

一、secret配置管理 配置管理: 加密配置:保存密码,token,其他敏感信息的k8s资源 应用配置:我们需要定制化的给应用进行配置,我们需要把定制好的配置文件同步到pod当中容器 1.1、加密配置: secret: [root@master01 ~]# kubectl get secrets ##查看加密配置[root@master01 ~]# kubectl get se

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk

安卓玩机工具------小米工具箱扩展工具 小米机型功能拓展

小米工具箱扩展版                     小米工具箱扩展版 iO_Box_Mi_Ext是由@晨钟酱开发的一款适用于小米(MIUI)、多亲(2、2Pro)、多看(多看电纸书)的多功能工具箱。该工具所有功能均可以免root实现,使用前,请打开开发者选项中的“USB调试”  功能特点 【小米工具箱】 1:冻结MIUI全家桶,隐藏状态栏图标,修改下拉通知栏图块数量;冻结

代码随想录刷题day24丨93.复原IP地址 ,78.子集 , 90.子集II

代码随想录刷题day24丨93.复原IP地址 ,78.子集 , 90.子集II 1.题目 1.1复原IP地址 题目链接:93. 复原 IP 地址 - 力扣(LeetCode) 视频讲解:回溯算法如何分割字符串并判断是合法IP?| LeetCode:93.复原IP地址_哔哩哔哩_bilibili 文档讲解:https://programmercarl.com/0093.%E5%A4%8

Computer Exercise

每日一练 单选题 在计算机机箱前面板接口插针上(     C   )表示复位开关。 A.SPK    B.PWRLED    C.RESET    D.HDDLED每台PC机最多可接(     B   )块IDE硬盘。 A.2    B.4    C.6    D.8(     B   )拓扑结构由连接成封闭回路的网络结点组成的,每一结点与它左右相邻的结点连接。 A.总线型    B

redis 实现单位时间内错误记录 时间到key值就被清除------最近脑子不好使觉得还是写个博客试试

直接在客户端操作的, 所以需要redis的简单命令  去对比JAVA客户端jedis的命令就行   添加---set     格式 set  key  value  EX time(秒)   如果这个time不添加的话 ,那默认就是 永久 获取--get    格式 get key  ---查看剩余时间    格式 TTL key ---实现key实现自增: inrc key

英伟达本月启动RTX 5080/90预案 600W散热模组推进中

据供应链最新消息称,英伟达将在本月开始RTX 5090、5080的宣传预案,而AIC合作伙伴会陆续收到相关资料。按照消息人士的说法,英伟达将在明年1月的CES大会上,正式发布RTX 5090、5080等重磅显卡。 按照散热模组厂商的说法,面向英伟达显卡的600W散热模组方案正持续推进,而400W功耗方案目前处于取消或搁置状态,此外目前共有5个英伟达显卡散热方案正在开发中。 这似乎也从侧面印证

【数据结构】LinkedList ------ java实现

知识框架图:   LinkedList是一种常用的数据结构。底层是一个双向链表。每个节点包含数据以及指向前一个节点和后一个节点的引用。    一:LinkedList的使用    1.1 LinkedList的构造方法 方法 解释LinkedList() 无参构造public LinkedList(Collection<? extends E> c) 使用其他集合容器中

Linux程序设计读书笔记------入门

第一章 入门   1:什么是Unix Unix是Open Group管理的一个商标,它指的是遵循特定规范的计算机操作系统 2:什么是Linux Linux是一个可以自由发布的类Unix内核实现,他是一个操作系统的底层核心 3:Linux应用程序表现为两种特殊类型的文件:可执行文件和脚本文件 4:Linux文本编辑器:Vim,Emacs等 5:库文件   1:静态库:.a   2

NLP从零开始------文本中阶处理之序列到序列模型(完整版)

1. 序列到序列模型简介         序列到序列( sequence to sequence, seq2seq) 是指输入和输出各为一个序列(如一句话) 的任务。本节将输入序列称作源序列,输出序列称作目标序列。序列到序列有非常多的重要应用, 其中最有名的是机器翻译( machine translation), 机器翻译模型的输入是待翻译语言(源语言) 的文本,输出则是翻译后的语言(目标语言)