初探 Rust 語言與環境搭建

来源:https://www.cnblogs.com/wgjava/p/18366810
-Advertisement-
Play Games

1. Rust 簡介 Rust 的歷史 起源:Rust 語言最初由 Mozilla 研究員 Graydon Hoare 於 2006 年開始設計,並於 2009 年首次公開。 開發:Rust 是 Mozilla 實驗室的一個項目,目的是創建一種能夠保證記憶體安全同時又不犧牲性能的系統編程語言。 發佈: ...


1. Rust 簡介

Rust 的歷史

  • 起源:Rust 語言最初由 Mozilla 研究員 Graydon Hoare 於 2006 年開始設計,並於 2009 年首次公開。
  • 開發:Rust 是 Mozilla 實驗室的一個項目,目的是創建一種能夠保證記憶體安全同時又不犧牲性能的系統編程語言。
  • 發佈:Rust 1.0 穩定版於 2015 年發佈,標志著語言的成熟和穩定。

設計目標

  • 記憶體安全:Rust 的設計核心是提供記憶體安全,通過所有權(ownership)、借用(borrowing)和生命周期(lifetimes)的概念來避免空指針解引用和數據競爭等問題。
  • 併發編程:Rust 旨在簡化併發編程,通過所有權和類型系統來幫助開發者編寫無數據競爭的多線程代碼。
  • 性能:Rust 旨在提供與 C/C++ 相當的性能,沒有運行時垃圾收集器,編譯為機器碼,適合系統編程和性能敏感型應用。
  • 表達性:Rust 提供了豐富的類型系統和模式匹配,使得代碼既安全又具有表現力。

Rust 與 C/C++ 的比較

  • 記憶體安全:與 C/C++ 相比,Rust 通過所有權和借用規則在編譯時避免了記憶體泄漏和野指針問題,而 C/C++ 需要開發者手動管理記憶體。
  • 併發性:Rust 的所有權模型天然支持無數據競爭的併發,而 C++11 引入了線程庫來支持併發編程,但依然需要開發者小心處理數據同步問題。
  • 語法:Rust 的語法類似於 C++,但更簡潔,且提供了模式匹配等特性,使得代碼更易於編寫和理解。
  • 錯誤處理:Rust 使用 Result 類型來顯式處理可能的錯誤,而 C++ 使用異常處理。
  • 編譯器友好:Rust 的編譯器提供詳盡的錯誤信息和有用的提示,幫助開發者快速定位和解決問題。

Rust 的應用領域

  • 系統編程:由於其性能和記憶體安全特性,Rust 適合用於操作系統、文件系統、設備驅動等底層系統開發。
  • WebAssembly:Rust 可以編譯為 WebAssembly,用於開發 Web 應用的高性能前端邏輯。
  • 嵌入式編程:Rust 的資源管理特性使其適合用於嵌入式設備編程。
  • 工具開發:Rust 用於開發命令行工具,如 cargo(Rust 的包管理器和構建工具)。

Rust 的生態系統

  • Cargo:Rust 的包管理器和構建工具,用於依賴管理和項目構建。
  • crates.io:Rust 的包註冊表,類似於 npm 或 Maven,用於共用和重用代碼。
  • 社區:Rust 擁有一個活躍的社區,提供大量的庫和框架,以及持續的技術支持。

學習資源

  • The Rust Programming Language(又稱 "The Book"):Rust 官方教程,適合初學者。
  • Rust by Example:通過實例學習 Rust,覆蓋了 Rust 的大部分特性。
  • Rustlings:一個練習項目,通過小練習幫助學習 Rust。

Rust 作為一種現代系統編程語言,以其記憶體安全、併發性和性能優勢,正在獲得越來越多的關註和應用。隨著 Rust 生態的不斷發展,我們可以預見它將在未來的軟體開發中扮演更重要的角色。

2. 環境搭建

搭建 Rust 編程環境主要包括安裝 Rust 編譯器和一些輔助工具。以下步驟將引導你完成環境搭建:

步驟 1: 安裝 Rust 編譯器

Rust 編譯器可以通過 Rustup 安裝,Rustup 是 Rust 的官方安裝程式和版本管理器。

  1. 訪問 Rustup 官網:打開 rustup.rs
  2. 遵循安裝指南:根據你的操作系統(Windows、macOS、Linux),網頁會提供相應的安裝指令。
  3. 自動安裝腳本:對於大多數用戶,只需複製網頁上提供的命令併在終端或命令提示符中運行即可。例如,在 Linux 或 macOS 上,你可以使用以下命令:
   curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

在終端執行以上命令後的效果:

到這個界面,回車繼續安裝和配置環境變數。

看到這個界面,安裝就完成了。

stable-x86_64-apple-darwin installed - rustc 1.80.1 表示安裝成功,版本號為1.80.1。

對於 Windows 用戶,下載並運行提供的 rustup-init.exe 安裝程式。

步驟 2: 檢查安裝

安裝完成後,你可以通過在終端運行以下命令來檢查 Rust 編譯器是否正確安裝(V哥提醒:一定要重啟一下終端):

rustc --version

這將顯示安裝的 Rust 編譯器版本。

步驟 3: 安裝 Cargo

Cargo 不僅是 Rust 的包管理器,還是構建工具。它與 Rust 編譯器一起安裝,所以你不需要單獨安裝。

  1. 檢查 Cargo 安裝:運行以下命令來檢查 Cargo 是否已安裝:
   cargo --version

步驟 4: 更新 Rust

Rust 和 Cargo 會定期更新。使用以下命令來更新到最新版本:

rustup update

步驟 5: 配置環境變數(如果需要)

在某些系統中,可能需要將 Rust 編譯器和 Cargo 添加到 PATH 環境變數中。通常,Rustup 會自動處理這一步,但如果沒有,你可以手動添加。

  1. 找到 Rustup 安裝目錄:Rustup 通常安裝在以下路徑:
    • Windows:C:\Users\你的用戶名\.cargo\bin
    • macOS 和 Linux:~/.cargo/bin
  2. 添加到 PATH:根據你的操作系統,將上述路徑添加到 PATH 環境變數中。

步驟 6: 創建第一個項目

使用 Cargo 創建一個新項目來測試你的環境。

  1. 打開終端或命令提示符
  2. 運行以下命令
   cargo new myproject

這將在當前目錄下創建一個名為 myproject 的新文件夾,包含一個新的 Rust 項目模板。

步驟 7: 構建和運行項目

  1. 進入項目目錄
   cd myproject
  1. 構建項目
   cargo build

這將編譯你的項目,生成的可執行文件在 target/debug/ 目錄下。

  1. 運行項目
   cargo run

運行成功。

步驟 8: 探索項目結構

新創建的 Rust 項目包含以下文件和目錄:

  • Cargo.toml:項目的配置文件,包含元數據和依賴信息。
  • src:源代碼目錄,包含 main.rs — 項目的入口點。

按照這些步驟,你將擁有一個基本的 Rust 開發環境,可以開始編寫和運行 Rust 程式。如果你在安裝過程中遇到任何問題,可以聯繫 V 哥一對一幫你解決。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 題目描述 給定一個只包括 '(',')','{','}','[',']' 的字元串 s ,判斷字元串是否有效。 有效字元串需滿足: 左括弧必須用相同類型的右括弧閉合。 左括弧必須以正確的順序閉合。 每個右括弧都有一個對應的相同類型的左括弧。 大體思路 這裡我們使用棧這個數據結構來解決,我們從左到右依 ...
  • Python Lambda 用法大全 一、Lambda表達式基礎 Lambda 的組成分為三部分 Lambda表達式是Python中的一種匿名函數,它可以在一行代碼中定義函數並立即調用它。與普通函數不同的是,Lambda函數通常不需要使用def關鍵字去定義,而是在需要時直接使用lambda關鍵字來創 ...
  • 在PHP 7.4中安裝xdebug,出現"configure: error: rtnetlink.h is required, please make sure it is available by installing the correct package"的問題。 在使用sudo yum in ...
  • 寫在前面 今天繼續講JavaIO流的知識! Java 文件與流操作 File 類 File 類用於表示文件和文件夾的抽象。 構造方法 public File(String pathname): 使用路徑名創建 File 對象。 public File(String parent, String ch ...
  • 類中使用shared_ptr()的問題 當我們先定義一個指針,然後再用這個指針構造兩個智能指針 int main() { int* pt = new int(); std::shared_ptr<int> p1(pt); std::shared_ptr<int> p2(pt); std::cout ...
  • 先序: 學習編程語言要先學個輪廓,剛開始只用學核心的部分,一些細節、不常用的內容先放著,現用現查即可;把常用的東西弄熟練了在慢慢補充。 1、 安裝 Python 解釋器 為什麼需要安裝 Python Python 語言本身是由解釋器執行的,因此你需要在你的電腦上安裝 Python 解釋器。這個解釋 ...
  • 先序: 學習編程語言要先學個輪廓,剛開始只用學核心的部分,一些細節、不常用的內容先放著,現用現查即可;把常用的東西弄熟練了在慢慢補充。 1. Java 概述 Java 是一種面向對象的編程語言,由 Sun Microsystems(現在的 Oracle)在 1995 年推出。Java 程式可以在任何 ...
  • 正文 今天還是把周末的所有事情一起寫。每到周末都沒什麼寫日記的動力。 周五下午出去吃飯,吃一半,斯視頻突然打過來。我當時有點懵,不知道他要乾什麼,但還是接了。第一個畫面就是他擺弄自行車。他跟我說,自行車踏板和鏈條有問題,踩下去的時候轉一半就動不了了。 經過我們二人一通瞎猜,發現是後面的鏈條掉了,但是 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...