• Rust语言基础:从Hello World开始


    大家好,我是[lincyang]。

    我们将一起探索Rust语言的基础,从最经典的程序入手——“Hello, World!”。

    Rust简介

    Rust是一种系统编程语言,由Mozilla赞助开发,旨在提供内存安全、并发性和实用性。它的设计思想强调安全性和性能,是系统级编程的现代替代品。

    安装Rust

    开始之前,我们需要安装Rust编译器和它的包管理工具Cargo。Rust提供了一个方便的安装脚本,可以通过以下命令在Unix-like系统上安装:

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

    在Windows上,你可以下载并运行rustup-init.exe来安装。

    安装完成后,重启你的终端,运行rustc --version来验证安装。

    编写第一个Rust程序

    打开你的文本编辑器,创建一个新文件,命名为main.rs,并输入以下代码:

    fn main() {

    println!("Hello, World!");

    }

    这段代码定义了一个名为main的函数,这是每个可执行Rust程序的入口点。println!是一个宏,用于将文本输出到控制台。

    编译和运行

    保存文件后,打开终端,切换到文件所在目录,运行以下命令来编译:

    rustc main.rs

    这将生成一个可执行文件。在Unix-like系统上,你可以通过./main来运行它,在Windows上则直接运行main.exe。你应该会看到控制台输出了Hello, World!。

    探索Cargo

    Cargo是Rust的构建系统和包管理器,它可以帮助我们管理依赖、编译项目和发布代码。让我们使用Cargo来创建一个新的项目:

    cargo new hello_world

    cd hello_world

    这会创建一个新的目录hello_world,其中包含一个Cargo.toml文件和一个src目录,src目录中有一个main.rs文件,文件内容已经包含了Hello, World!的代码。

    在项目目录中,运行cargo build,Cargo会编译项目并生成可执行文件在target/debug目录下。使用cargo run可以直接编译并运行程序。

    理解Rust的基本概念

    变量和可变性

    默认情况下,Rust中的变量是不可变的。这意味着一旦一个值被绑定到一个变量名上,你就不能改变这个值。要使变量可变,可以使用mut关键字。

    let mut x = 5;

    println!("The value of x is: {}", x);

    x = 6;

    println!("The value of x is: {}", x);

    数据类型

    Rust是一种静态类型语言,这意味着所有变量的类型都必须在编译时已知。Rust有多种数据类型,这里我们介绍两个基础的:标量和复合。

    1. 标量类型:代表一个单一的值,如整数、浮点数、布尔值和字符。
    2. 复合类型:可以将多个值组合成一个类型,比如元组(tuple)和数组(array)。

    所有权

    所有权是Rust最独特的特性之一,它使得Rust无需垃圾回收就能保证内存安全。所有权规则如下:

    1. 每个值都有一个被称为其所有者的变量。
    2. 值在任何时候只能有一个所有者。
    3. 当所有者离开作用域,这个值将被丢弃。

    结语

    今天,我们介绍了Rust的安装过程、编写和运行Hello World程序、Cargo的基本使用,以及Rust的一些基本概念。Rust的学习曲线可能比较陡峭,但它的安全保证和强大的性能是值得的。希望这篇文章能为你的Rust学习之旅提供一个良好的起点。

  • 相关阅读:
    华为OD机试:路灯照明问题(100分)
    线程池的使用
    MATLAB(6)GUI应用介绍
    Flink 1.13 源码解析——JobManager启动流程之ResourceManager启动
    【机器学习】Kmeans聚类算法
    Nginx中配置GZIP压缩详解
    数据挖掘(五) k-means
    华为机试真题 C++ 实现【最大括号深度】
    我的创作纪念日
    vue项目动态配置网站图标
  • 原文地址:https://blog.csdn.net/yll_358918552/article/details/134372091