我的第一个rust程序,感受一下

2023-05-16

周末了,要学习一点让自己开心的东西。

听说rust语言很年轻,性能超过了C++,还能支持嵌入式编程,作为一名未来要出名的代码工程师,岂能错过?于是上周开始学习这个语言。

跟着书本编写完成了第一个小程序,guess_number,(什么?竟然不是“hello world”??)因为随便生成一个程序,模板就是helloworld,根本不需要写,论输出hello world的速度,rust只需要两个指令,这点挺强的。

先上代码,看看:

use std::io;
use std::cmp::Ordering;
use rand::Rng;

fn main() {
    println!("Guess the number!");
    
    let secret_number=rand::thread_rng().gen_range(1,101);
    
    //println!("The secret number is:{}",secret_number);
    loop{
	    println!("Please input your guess");
	    
	    let mut guess = String::new();
	    
	    io::stdin().read_line(&mut guess).expect("Failed to read line");
	    
	    //let guess:u32 = guess.trim().parse().expect("Please type a number!");
	    let guess:u32 = match guess.trim().parse() {
	    	Ok(num) => num,
	    	Err(_) => continue,
		};
	    
	    println!("You guessed:{}",guess);
	    
	    match guess.cmp(&secret_number)
	    {
	    	Ordering::Less => println!("Too small!"),
	    	Ordering::Greater => println!("Too big!"),
	    	Ordering::Equal => {
				println!("You win!");
				break;
			}
		}
	}
}

编写这个代码我用的是 dev C++,听说没有专门的编辑器,后续再试一试notepad--这个国产软件编写是什么感觉。

上述代码中的use用法,感觉像是C++和python的结合,省却了头文件的包含,使用的crate十分类似python的package。fn main() 瞬间来了C语言的感觉,只是不知道函数的返回值在哪儿。let 定义一个常量,mut表示可变的。函数的返回值处理用expect或者match来处理,不处理就会warning。同样是match,有的地方写的是分号;,有的地方写的是逗号,目前还不知道为什么。循环采用loop,这是熟悉的arduino的程序结构啊。{}的语句块,还是C语言的,没有选择python的缩进用法,我觉得是对的。

目前就感觉这么多了,怎么运行程序,看官网的教程入门 - Rust 程序设计语言 (rust-lang.org)

晚安,2023-3-10 22:38 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我的第一个rust程序,感受一下 的相关文章

随机推荐

  • Vue2.* computed property ' ' was assigned to but it has no setter.

    场景分析解决 场景 父组件传递了一个属性给子组件 xff0c 子组件需要在完成某个动作之后 xff0c 修改这个动作 当我将这个计算属性在computed处理后 再次修改的时候 xff0c 会有警告而且修改没有成功 computed pro
  • 深度学习入门(七)——深度学习和视觉的基础数学知识

    深度学习和视觉的基础数学知识 线性变换和非线性变换点积和投影矩阵乘法的几何意义本征向量和本征值奇异值分解线性可分性和维度非线性变换 概率论条件概率和独立期望值 方差和协方差熵最大似然估计KL散度 维度诅咒采样和维度高维空间中的体积和距离中心
  • 深度学习入门(八)——深度卷积神经网络

    深度卷积神经网络 卷积神经网络卷积层和特征响应图参数共享稀疏连接多通道卷积激活函数池化 不变性和感受野分布式表征分层表达卷积神经网络结构 LeNetAlexNet网络结构局部响应归一化 GoogLeNetNetwork In Network
  • 深度学习入门(九)——深度学习框架概览

    深度学习框架概览 CaffeTheanoTensorFlowTorchPytorchMXNetcuda convnet2NeonDeeplearning4jCNTKPaddlePaddleKeras 工欲善其事 xff0c 必先利其器 深度
  • 高级篇之ENC1V2新用法USB/RS232串口转Visca-Over-IP

    高级篇之ENC1V2新用法USB RS232串口转Visca Over IP 术语背景现实需求 大家好 xff0c 最近ENC1 V2卖的很火 xff0c 主要是因为发现了它的一个新用法 xff0c 究竟是什么 xff0c 马上揭晓 术语
  • win10+Python3.7 安装 labelImg, lxml无法找不到DLL

    问题 E labelImg gt labelImg Traceback most recent call last File 34 e anda lib runpy py 34 line 193 in run module as main
  • const和#define的区别,详细!

    区别 xff1a xff08 1 xff09 就起作用的阶段而言 xff1a define是在编译的预处理阶段 起作用 xff0c 而const是在 编译 运行 的时候起作用 xff08 2 xff09 就起作用的方式而言 xff1a de
  • ubuntu16.04使用USB转TTL(ch340)串口转usb调试过程

    输入命令 xff1a lsmod grep usbserial 输入 xff1a lsusb 发现了ch341的一些相关信息 输入命令 xff08 查看USB转串口接入状态 xff09 xff1a dmesg usb 6 1 ch341 u
  • LinuxCNC学习-Machinekit手册介绍

    原文链接 http www machinekit io docs common user intro 1 Machinekit用户手册 1 1 关于手册 本手册的重点是如何 使用 Machinekit 安装并配置了Machinekit后 x
  • LinuxCNC学习-HAL库介绍

    原文链接 xff1a http www machinekit io docs hal intro 1 HAL库介绍 HAL代表硬件抽象层 在最高级别上 xff0c 它只是一种允许加载和互连多个 构建块 以组装复杂系统的方式 硬件 部分是因为
  • double float 类型在内存中的存储形式

    一 基础知识 浮点数分为 单精度和双精度 xff0c 在内存中都分为三部分 xff1b 符号位 xff1b 指数位 xff1b 尾数位 xff1b Float类型内存形式 xff1a 图1 float类型在内存中的形式 double类型内存
  • php array_walk break跳出循环的方法

    场景分析解决 场景 array walk使用的地方不要太多 xff0c 在某种情况眷下需要它跳出循环 分析 break 不是array walk的关键字return 不能达到break的效果 相当于foreach的 continue 歪个楼
  • gazebo黑屏打不开world的解决方法

    打开gazebo的时候会发现一直处于黑屏这种状态 xff0c 这是因为model库加载不正确导致的 cd gazebo mkdir p models cd gazebo models wget http file ncnynl com ro
  • JAVA Http的Post请求传参添加Authorization Basic Auth验证

    PostMan添加Authorization验证 pom xml添加依赖包 lt dependency gt lt groupId gt org apache commons lt groupId gt lt artifactId gt c
  • 一个字符串吧大写字母转换为小写字母

    709 转换成小写字母 难度简单140收藏分享切换为英文接收动态反馈 实现函数 ToLowerCase xff0c 该函数接收一个字符串参数 str xff0c 并将该字符串中的大写字母转换成小写字母 xff0c 之后返回新的字符串 示例
  • TX2/Linux下can总线的接收与发送命令和C程序实例

    本文博客深度参考了前辈的作品 xff1a TX2 Linux下can总线的接收与发送详解 xff01 https blog csdn net hhlenergystory article details 81976069 Linux CAN
  • ubuntu18.04 安装Qt交叉编译环境目标机为rk3288

    本文在虚拟机条件下安装成功 xff0c 采用Ubuntu18 04 64位镜像作为编译环境 需要准备材料 交叉编译器 xff1a 目标机器为64位的使用 gcc linaro 6 3 1 2017 05 x86 64 aarch64 lin
  • 使用matlab实现指定三维区域随机生成N个不相交球的函数

    自从写了这篇博客之后 xff0c 更多的人来问我这个问题了 简单写一个随机在一个三维区域生成球的matlab函数 风一样的航哥的博客 CSDN博客 comsol随机生成球体 上次简单写的功能 xff0c 可以实现一些比较稀疏的分布 xff0
  • 在嵌入式里面实现printf()类似的功能

    学习C语言大多数都是从printf 34 hello world 34 开始的 xff0c 对于printf的熟悉程度最高 xff0c 在嵌入式编程中 xff0c 实现printf函数有一种很标准的办法就是实现putch xff0c 绑定对
  • 我的第一个rust程序,感受一下

    周末了 xff0c 要学习一点让自己开心的东西 听说rust语言很年轻 xff0c 性能超过了C 43 43 xff0c 还能支持嵌入式编程 xff0c 作为一名未来要出名的代码工程师 xff0c 岂能错过 xff1f 于是上周开始学习这个