锋哥学Rust,第一课Hello

今天跟大家分享学习Rust的笔记。网上很多教程,入门都不容易懂,我要写自己的,对新手友好一些的。

新学一门语言,困扰大家的是什么?是如何获得快乐,以及如何搞一点有用的东西出来,让自己有快乐的收获感,成就感。让自己可以坚持下去。

 

先订一个小目标,我要编写一段小程序,它有以下功能:

这是一个命令行工具
它运行之后,显示一段文本:please type your name
等待我的输入完成之后,按回车键。
显示:hello [username]
显示你所输入的名字

 

让我们开始吧。先看最基本的代码。在写代码之前,我认为你己经装了Rust up工具链,你电脑上最起码装好了cargo和rustc

 

我们先创建一个目录,比如c:\workspace\rust-hello

然后开启一个shell窗口,windows下面的cmd或者Linux 下面的terminal都算是shell

cd 进入目录, 执行cargo init初始化项目脚手架。

 

然后编辑src/main.rs

锋哥学Rust,第一课Hello
代码如下:

use std::io::{self};
fn main() {
    println!("Please type your name:");
    let mut username = String::new();
    io::stdin().read_line(&mut username).expect("Error: can not get input");
    println!("hello {}", username);
}


运行很简单,执行: cargo run就可以了。输入一个名字,回车,你会收到来自rust程序的问候

我们来逐行看代码

第一行 use std::io::{self} 是引入标准库io,self表示引入这一级的package名。要使用下而的方法。

是io::stdin()

注意这个::两个符号,就是调用模块下面的某个方法的意思,

再往下看,fn main() {

这一行就是cli应用程序的main 函数,fn 是function的意思,它声明了这是一个main方法。

{括号开始到}结尾,就是main函数的主体

println!("Please type your name:");

这是第一句,作用是在输出端,也就是shell窗口,显示一行文本,please type your name: , 注意println!是有一个!感叹号的作用其实是展开宏命令(Expand macro), 你先记一下这个概念,后面再深入。先从简单的学起。println!的作用是打印变量,不变量到std out

每一句代码,以;符号表示一句结束,这个跟其它语言,csharp, cpp, java比较相似。

let mut username = String::new();

左边定义了一个username的变量,mut 表是它是变量,只有变量才能接受修改,它后面要接收用户输入,所以这里面要用mut定义一个变量的意思。 let是 一个动作,指令,它表示使变量等于 xxx值的意思, 也就是让变量 username 等于 = 符号右边的 值

再看右边的 String::new();

String 是Rust 内建的数据类型,表示是字符串类型,new方法是创建一个容器,并分配内存,接下来你就可以往分配好的变量username里面写内容了。

io::stdin() 调用了stdin方法,接下来read_line表示读取 用户输入的一行内容(以回车键为结尾)【变量username是 read_line的一个参数,作为一个方法,read_line 会把参数username当容器,用户输入的内容,会回填到username里面。.expect是一个方法,当前面的方法执行失败的时候,我们要抛出一个异常,expect方法的参数,你可以写上错的消息,表示当发生错的时候,咱们无法获取用户输入。

再往下看, println!("hello {}", username);

这一句是打印用户输入的内容,它存在username这个变量里面。 {}是一个占位符,变量会填充到占位符里面。

比如你叫张三,那么经过运算处理,你会看到一行输出:hello 张三。

 

虽然几行代码,但涵盖了不少rust的知识点,大家可以下去好好实验一下。

比如接收的不是字符串,是整数。你该怎么写程序。

比如你要接收两个数字,把它们加起来,显示加了之后的结果,你代码怎么写。

 

还有,你可以尝试输入多种数据结构,比如录入一个人的档案信息: 姓名,性别,年龄等。

 

都可以衍生开来。等你写了一圈相关代码,你会发现,你居然己经会写Rust代码了。

是不是很简单,有没有觉得自己很了不起?

Rust其实很好学,跟着锋哥学技术。

分类: 编程语言 标签: rust 发布于: 2021-02-04 10:29:13, 点击数: