Rust Learning Day1

Learn Rust for the Future: Day 1

Reference: The Rust Programming Language

This book is the official tutorial for Rust.

Install Cargo

Cargo is Rust's package manager, similar to Maven in Java. You can use it to create and manage projects. For example, to create a new project named guessing_game, you can run:

sh 复制代码
cargo new guessing_game

The Cargo.toml file is like pom.xml in Maven. It manages your project's dependencies. In this case, there is only one dependency named rand, which is used to generate random numbers. The line rand = "0.8.5" is shorthand for rand = "^0.8.5", meaning it will use versions from 0.8.5 up to, but not including, 0.9.0. If a new compatible version, like 0.8.6, is released, you can update to it using cargo update. However, if the new version has incompatible changes, it might break your program. Therefore, Cargo.lock is required to ensure consistent versions.

Here's an example Cargo.toml file for the guessing game project:

toml 复制代码
[package]
name = "guessing_game"
version = "0.1.0"
edition = "2021"

[dependencies]
rand = "0.8.5"

The Cargo.lock file is generated automatically by Cargo and keeps track of the exact versions of all dependencies.

Features Compared to Java

In Rust, you can declare variables as immutable by default using let, which means you cannot change their value later:

rust 复制代码
let x = 1;
// error: x is immutable
x = 2;

To make a variable mutable, use mut:

rust 复制代码
let mut x = 2;
x = 3;

Rust also supports variable shadowing, allowing you to declare a variable with the same name in a different scope. This feature allows the variable to have different types or values in different scopes:

rust 复制代码
let x = 3;
{
    let x = 12;
    // x: 12 within this scope
    println!("x: {x}");
}
// x: 3 outside the inner scope
println!("x: {x}");

Shadowing allows you to transform a variable's type, while mut does not. When the scope ends, the variable reverts to its original value.

相关推荐
杰克尼2 分钟前
知识点总结--day10(Spring-Cloud框架)
java·开发语言
用户962377954484 分钟前
工具魔改 | Cobalt Strike 4.7 特征修改与流量混淆
后端
gelald5 分钟前
Spring - AOP 原理
java·后端·spring
okiseethenwhat9 分钟前
Java 内部类详解
java·开发语言
枫叶丹49 分钟前
【HarmonyOS 6.0】ArkUI 状态管理进阶:深入理解 @Consume 装饰器默认值特性
开发语言·华为·harmonyos
Chase_______11 分钟前
【Python 基础】第4章:函数模块与包完全指南(函数/模块/包)
开发语言·python
众创岛12 分钟前
测试失败时自动截图并附加到 Allure 报告
开发语言·python
用户791406796839316 分钟前
springmvc的核心组件有哪些
后端
用户791406796839317 分钟前
Spring Boot 自动配置的完整启动流程
后端
csbysj202018 分钟前
SQL CREATE DATABASE 指令详解
开发语言