首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Rust 基础语法(一) -- 变量、运算与注释

Rust 基础语法(一) -- 变量、运算与注释

作者头像
用户3147702
发布于 2022-06-27 09:06:48
发布于 2022-06-27 09:06:48
56200
代码可运行
举报
运行总次数:0
代码可运行

1. 引言

上一篇文章中我们已经用 Rust 运行了 Hello World 程序,那么,接下来我们就来学习一下 Rust 的基础语法。

2. 标准输出

上一篇文章中,我们已经看到了 Rust 标准输出的例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fn main() {
    let a = 12;
    println!("a is {}", a);
}

2.1 输出函数

Rust 标准输出函数有两个:

  1. println!()
  2. print!()

两个的区别仅在于是否在末尾加上换行符。

2.2 占位符

上面的例子中,在输出参数中存在一个占位符 {},用来指代后面参数列表中的参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
println!("a is {}, a again is {}", a, a);

在这个例子中,参数列表中的 a 出现了两次,看起来有些冗余,rust 允许在 {} 中加入数字来进行对参数列表进行索引:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
println!("a is {0}, a again is {0}", a);

如何转义占位符,从而能够输出 {} 呢?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
println!("{{}}");

这样就会输出:

{}

3. Rust 的变量

3.1 变量

在本文的第一个例子中,我们看到了 let 关键字。它用来声明变量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let a = 123;

变量 a 在此声明之后,便拥有了类型,但我们并不能更改 a 的值,因为 a 并不是一个可变变量。

如果想让 a 被重新赋值,那么就需要用另一个关键字 mut 将变量标记为可变:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let mut a = 123;
a = 456;

但是要记住,a 是有类型的,即便 a 是可变的,仍然不能为 a 赋予其他类型的值。

3.2 重影

尽管不可变变量不能被重新赋值,但它是可以被重新声明的,通过重新声明可以重新绑定这一变量,从而为变量赋予新的值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fn main() {
    let a = 123;
    let a = "xyz";
    println!("The value of a is {}", a);
}

例如你可以这样使用重影机制:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fn main() {
    let x = 5;
    let x = x + 1;
    let x = x * 2;
    println!("The value of x is: {}", x);
}

会输出:

The value of x is: 12

4. Rust 数据类型

和其他语言类似,Rust 中数据类型也分为以下几个类型:

  1. 整型
  2. 浮点型
  3. 布尔型
  4. 字符型
  5. 数组类型

4.1 整型

位长度

有符号

无符号

8-bit

i8

u8

16-bit

i16

u16

32-bit

i32

u32

64-bit

i64

u64

128-bit

i128

u128

arch

isize

usize

isize 和 usize 两种整数类型是用来衡量数据大小的,它们的位长度取决于所运行的目标平台。

整型数的不同进制的写法有以下几种:

进制

十进制

98_222

十六进制

0xff

八进制

0o77

二进制

0b1111_0000

字节(只能表示 u8 型)

b'A'

可以在变量声明时指定变量类型:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fn main() {
    let x:i32 = 123;
}

4.2 浮点型

浮点型分为 32 位浮点数 f32 和 64 浮点数 f64。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fn main() {
    let x = 2.0; // f64
    let y: f32 = 3.0; // f32
}

4.3 布尔型

布尔型有两个取值:

  • true
  • false

4.4 字符型

Rust 中的字符型用 char 表示,大小为 4 字节,中文字符串则强制使用 UTF-8 编码。

4.5 数组与元组

与其他语言非常类似,数组和元组就是一组数据的集合。

  • 需要注意的是,rust 中的数组和元组的元素都是不可变的,也就是说声明后不能更新数组或元组中的某个元素。

1. 元组

元组是通过一堆括号包括的一组数据,可以拥有不同的数据类型:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let tup: (i32, f64, u8) = (500, 6.4, 1);
// tup.0 等于 500
// tup.1 等于 6.4
// tup.2 等于 1
let (x, y, z) = tup;
// y 等于 6.4

2. 数组

数组使用方括号包括的一组数据,这些数据必须是相同类型:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let a = [1, 2, 3, 4, 5];

5. 数学运算

rust 支持基本的数学运算,如:

  • 加:+
  • 减:-
  • 乘:*
  • 除:/
  • 取余:%
  • 赋值数学运算:+=、-= 等
  • Rust 不支持 ++ 与 -- 操作

6. 注释

和许多其他语言一样,Rust 支持下面的三种注释:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 这是第一种注释方式
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* 这是第二种注释方式 */
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*
 * 多行注释
 * 多行注释
 * 多行注释
 */

除此以外,rust 还有一种特殊的用于说明文档的注释:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/// Adds one to the number given.
///
/// # Examples
///
/// ```
/// let x = add(1, 2);
///
/// ```

fn add(a: i32, b: i32) -> i32 {
    return a + b;
}
   
fn main() {
    println!("{}",add(2,3));
}

Cargo 的 cargo doc 功能可以自动将文档书名注释变成 html 格式的说明文档。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小脑斧科技博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES/NO) 解决方案1.停止mysql
初次安装mysql,net start mysql,然后输入mysql -u root -p,
一个会写诗的程序员
2018/08/17
105.5K4
Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ 完美解决方法
遇到 Error 1045 (28000): Access denied for user ‘root’@‘localhost’ 错误是新手在配置 MySQL 时的常见问题。这通常意味着 root 用户无法通过提供的密码访问 MySQL 服务器。本篇文章将详细介绍导致这一问题的原因,并提供多种解决方案,帮助你彻底解决此问题。最后还有我的微信供大家交流。
默 语
2024/12/28
5.5K0
Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ 完美解决方法
MySQL输入密码出现ERROR 1045(28000)ACCESS denied for错误解决方法
本人的网站www.appjzw.com是安装centos7系统下面,采用的是LAMP环境,使用的是MySQL环境,今天准备进入数据库更改字符段时,发现无法进入数据,输入密码回车后出现“ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) ”错误:
IDC科技
2020/04/21
8.5K0
MySQL输入密码出现ERROR 1045(28000)ACCESS denied for错误解决方法
Error 1045 (28000):Access Denied for User ‘root‘@‘localhost‘ 完美解决方法
摘要 大家好,我是默语。在这篇文章中,我们将详细解析 MySQL 数据库中常见的错误之一——Error 1045 (28000)。该错误通常表示“Access Denied for User ‘root’@‘localhost’”,即“访问被拒绝,用户 ‘root’@‘localhost’”。我们将探讨这个错误的根本原因,提供详尽的解决方案,并通过实际示例帮助你有效解决此问题。无论你是数据库管理员还是开发者,这篇文章将帮助你快速解决访问权限问题。
默 语
2024/11/22
1.5K0
mysql-8.0.11-winx64 安装配置: mysqld --initialize --console MYSQL:ERROR 1045 (28000): Access denied ...
mysql-8.0.11-winx64 安装配置: mysqld --initialize --console MYSQL:ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost——MySQL5.7修改密码
一个会写诗的程序员
2018/08/17
9.9K0
mysql-8.0.11-winx64 安装配置: mysqld --initialize --console  MYSQL:ERROR 1045 (28000): Access denied ...
Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ — 完美解决方案详解 ️
大家好,我是默语!今天我们要深入探讨一个让很多MySQL用户头疼的问题:Error 1045 (28000): Access denied for user ‘root’@‘localhost’。这是在登录MySQL数据库时常见的错误提示,意味着用户无法使用root账户访问数据库。本文将详细分析该错误的成因,并提供多种解决方案,帮助大家迅速解决问题。关键词:MySQL、Error 1045、Access denied、root账户、数据库权限、MySQL登录问题。
默 语
2024/11/22
10.4K0
mysql5.7 ERROR 1045 (28000): Access denied for user 'root'@'localhost'
初次安装mysql,net start mysql,然后输入mysql -u root -p,出现enter password,我直接点击回车,结果出现如果下错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)。网上看了很多方法,都是千篇一律的,没有解决我的问题
似水的流年
2018/01/14
9860
猫头虎 分享已解决Bug || Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
大家好,今天猫头虎带您深入了解如何解决MySQL中常见的Error 1045 (28000): Access denied for user 'root'@'localhost'错误!
猫头虎
2025/06/01
3900
猫头虎 分享已解决Bug || Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
linux修改mysql数据库密码
①: 在终端命令行输入 mysqladmin -u root -p password “新密码” 回车 ,Enter password: 【输入原来的旧密码】 ②: 登录mysql系统修改, mysql -uroot -p 回车 Enter password: 【输入原来的密码】
全栈程序员站长
2022/08/09
11.6K0
解决Navicat for MySQL 1045错误的三种方法
1045-Access denied for user ‘root’@’localhost’(using password: YES)
全栈程序员站长
2022/09/07
4.1K0
如何解决ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO) MySQL5和MySQL8
摘要: 在MySQL中,遇到ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)错误,意味着MySQL拒绝了root用户的访问请求。这个问题通常与密码设置或权限配置错误有关。本文将详细介绍MySQL 5和MySQL 8版本下的解决方法,帮助用户快速解决该问题。通过这些技术解决方案,你可以轻松修复MySQL连接错误,并提高数据库的安全性和访问权限管理能力。本文将涵盖常见的错误排查步骤、权限修复方法以及如何重新设置MySQL root用户的密码,特别适用于开发人员、系统管理员以及数据库管理员。
猫头虎
2025/04/14
3.3K0
如何解决 mysql -u root ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: 错误
此错误提示表示用户尝试使用 root 用户登录 MySQL,但未提供密码,MySQL 拒绝了此次访问。
猫头虎
2025/06/15
5040
LINUX下RPM安装MYSQL5.6
之前使用yum安装mysql确实很方便,但是默认安装的myql5.0版本的,不支持utf8mb4(utf8mb4扩展到一个字符最多能有4节,所以能支持更多的字符集,比如支持emoji表情)编码格式,所以要升级数据库,yum库升级貌似有点费劲,果断卸载了,使用rpm直接安装,卸载的时候遇到一些问题,要卸载干净请参考之前写的一篇文章:http://blog.csdn.net/tjcyjd/article/details/52189182,言归正传,如何安装呢,其实很简单:
用户4988376
2021/08/09
1.9K0
Centos7解决MySQL登录ERROR 1045 (28000): Access denied for user ‘‘@‘localhost‘ (using
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor:yes)
OwenZhang
2021/12/08
4.8K0
Centos7解决MySQL登录ERROR 1045 (28000): Access denied for user ‘‘@‘localhost‘ (using
Linux 环境下 MySQL 5.7 root密码忘记-解决方法
输入密码后提示:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
zinyan.com
2022/12/07
1.6K0
Suse发生了错误Access denied for user ''@'localhost' to&
  好久没实用MySQL了,上次由于装了Banq的论坛系统。在用MySQL Administrator进去的时候居然提示mysql error number 1045 access denied for user ‘admin’@’localhost’ (using password: YES)的错误,看来密码是对了,username错了。最后发现自己居然犯了个第几错误,username应该是root,唉!
全栈程序员站长
2022/07/06
3980
Access Denied for user root @localhost 解决方案
问题描述: C:\Users\bo.wang> mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
HUC思梦
2020/09/03
4.4K0
Access Denied for user root @localhost 解决方案
Access denied for user ''@'localhost' to
提示:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'。前两天也出现过这个问题,网上找了一个比较流行的方法(见方法一),搞定了。今天又用这个试了试,却搞不定,在网上找了半天,终于发现是因为mysql数据库的user表里,存在用户名为空的账户即匿名账户,导致登录的时候是虽然用的是root,但实际是匿名登录的,通过错误提示里的''@'localhost'可以看出来,于是解决办法见方法二。 方法一: 1.关闭mysql    # service mysqld stop 2.屏蔽权限    # mysqld_safe --skip-grant-table    屏幕出现: Starting demo from ..... 3.新开起一个终端输入    # mysql -u root mysql    mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';    mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误    mysql> \q
双面人
2019/04/10
2.1K0
Mysql:ERROR 1698 (28000): Access denied for user 'root'@'localhost'
描述 出现场景:这个问题一般出现在刚刚安装完mysql的时候 出现原因:由于使用命令sudo apt-get install mysql安装时,并没有提示输入密码,则密码没有初始化,使用root用户登录自然失败. 具体情况: :~$ mysql -uroot -p Enter password: ERROR 1698 (28000): Access denied for user 'root'@'localhost' 下面是解决问题的方法。 解决方法 思路:既然密码没有初始化,那么直接使用默认密码登录就可
roobtyan
2018/06/04
9.6K2
ERROR 1045 (28000):Access denied for user 'root'@'node1' (using password: YES)
在node1节点上安装了mysql,启动Hive时报错: Caused by: java.sql.SQLException: Access denied for user ‘root’@’node1’ (using password: YES)
程裕强
2022/05/06
7440
推荐阅读
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES/NO) 解决方案1.停止mysql
105.5K4
Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ 完美解决方法
5.5K0
MySQL输入密码出现ERROR 1045(28000)ACCESS denied for错误解决方法
8.5K0
Error 1045 (28000):Access Denied for User ‘root‘@‘localhost‘ 完美解决方法
1.5K0
mysql-8.0.11-winx64 安装配置: mysqld --initialize --console MYSQL:ERROR 1045 (28000): Access denied ...
9.9K0
Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ — 完美解决方案详解 ️
10.4K0
mysql5.7 ERROR 1045 (28000): Access denied for user 'root'@'localhost'
9860
猫头虎 分享已解决Bug || Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
3900
linux修改mysql数据库密码
11.6K0
解决Navicat for MySQL 1045错误的三种方法
4.1K0
如何解决ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO) MySQL5和MySQL8
3.3K0
如何解决 mysql -u root ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: 错误
5040
LINUX下RPM安装MYSQL5.6
1.9K0
Centos7解决MySQL登录ERROR 1045 (28000): Access denied for user ‘‘@‘localhost‘ (using
4.8K0
Linux 环境下 MySQL 5.7 root密码忘记-解决方法
1.6K0
Suse发生了错误Access denied for user ''@'localhost' to&
3980
Access Denied for user root @localhost 解决方案
4.4K0
Access denied for user ''@'localhost' to
2.1K0
Mysql:ERROR 1698 (28000): Access denied for user 'root'@'localhost'
9.6K2
ERROR 1045 (28000):Access denied for user 'root'@'node1' (using password: YES)
7440
相关推荐
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES/NO) 解决方案1.停止mysql
更多 >
目录
  • 1. 引言
  • 2. 标准输出
    • 2.1 输出函数
    • 2.2 占位符
  • 3. Rust 的变量
    • 3.1 变量
    • 3.2 重影
  • 4. Rust 数据类型
    • 4.1 整型
    • 4.2 浮点型
    • 4.3 布尔型
    • 4.4 字符型
    • 4.5 数组与元组
      • 1. 元组
      • 2. 数组
  • 5. 数学运算
  • 6. 注释
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档