【Rust入門】猜數游戲

文章目錄

  • 前言
  • Rust的變量
  • Rust占位符
  • 讀取一行數據到變量里面
  • 示例代碼
  • 總結


前言

Rust是一種系統編程語言,它專注于速度、內存安全和并行性。學習Rust可以為你的編程技能庫增添新的一筆。在這篇文章中,我們將通過一個簡單的猜數游戲來介紹Rust的基本概念。這個游戲是一個很好的入門項目,因為它涉及到一些基本的編程概念,如變量、循環、輸入/輸出和條件語句。無論你是一位經驗豐富的程序員,還是剛剛開始接觸編程,我相信你都會從這個項目中學到一些有用的東西。


Rust的變量

變量可以被理解為一個存儲信息的容器。你可以把它想象成一個儲物箱,你可以在里面放東西(賦值),也可以從里面取東西(使用變量)。在編程中,我們使用變量來存儲和操作數據。

在Rust中,你可以使用let關鍵字來定義一個變量。例如:

let x = 5;

這行代碼定義了一個名為x的變量,并給它賦值為5。在Rust中,變量默認是不可變的,這意味著一旦一個變量被賦值,你就不能改變它的值。如果你想要一個可以改變的變量,你可以在let關鍵字前加上mut關鍵字。例如:

let mut y = 5;
y = 6; // 這是合法的,因為y是可變的

這段代碼定義了一個可變的變量y,并首先將其設置為5,然后改變它的值為6。

Rust占位符

在Rust中,占位符主要用于格式化輸出,特別是在打印變量值時。占位符被定義在一個字符串中,然后可以被變量的值替換。在Rust中,我們使用大括號 {} 作為占位符。

例如,如果你有一個變量 x 并想打印它的值,你可以這樣做:

let x = 5;
println!("x的值是 {}", x);

在這個例子中,{} 是一個占位符,當 println! 函數運行時,它會被 x 的值替換,所以輸出會是 “x的值是 5”。

此外,Rust的占位符還可以進行更復雜的操作,如指定寬度、精度和對齊方式等。例如:

println!("{:5}", 1);  // 輸出 "    1",右對齊,寬度為5
println!("{:<5}", 1); // 輸出 "1    ",左對齊,寬度為5
println!("{:.2}", 3.14159); // 輸出 "3.14",保留兩位小數

讀取一行數據到變量里面

在Rust中,use關鍵字用于引入庫或模塊中的項。當你想要使用一個庫或模塊中的函數、結構體、枚舉等時,你需要先用use關鍵字將它們引入到當前的作用域中。

例如,如果你想要使用標準庫(std)中的io(io庫是專門用于輸入輸出的),你可以這樣做:

use std::io;fn main() {//.....
}

use關鍵字在Rust中起到了簡化代碼和提高可讀性的作用。

read_line()函數:
read_line()是Rust中的一個函數,它用于從標準輸入(通常是用戶在命令行中的輸入)讀取一行文本。這個函數非常有用,比如在你需要從用戶那里獲取輸入時。

read_line()函數需要一個參數,這個參數必須是一個可變引用到一個String。這個String將被用作一個緩沖區,read_line()會將用戶的輸入讀取到這個String中。

下面是一個使用read_line()的例子:

use std::io;fn main() {let mut input = String::new();io::stdin().read_line(&mut input).expect("Failed to read line");println!("You entered: {}", input);
}

在這個例子中,我們首先創建了一個新的String,然后我們調用io::stdin().read_line(&mut input)來讀取用戶的輸入。&mut input是一個指向input的可變引用(&mut表示后面的變量是可變的),這樣read_line()就可以修改input的內容。如果讀取成功,用戶輸入的內容就會被存儲在input中。

expect("Failed to read line")是用來處理可能的錯誤的。如果read_line()因為某種原因失敗了(比如無法讀取輸入),它會返回一個Err值。expect()會檢查Result是否是Err,如果是,它就會停止程序運行,并顯示提供給它的消息,即"Failed to read line"。

示例代碼

use std::io;
use rand::Rng;fn main() {println!("Guess the number:");let mut guess = String::new();io::stdin().read_line(&mut guess).expect("Failed to read line");println!("You guessed: {}", guess);
}

總結

通過完成這個猜數游戲,我們已經對Rust有了一個基本的了解。我們學習了如何使用變量、循環、輸入/輸出和條件語句,這些都是編程的基本構建塊。我們還看到了Rust如何處理錯誤,以及它如何強制我們寫出內存安全的代碼。雖然我們還有很多東西要學,但這個項目已經給我們提供了一個堅實的基礎,我們可以在此基礎上繼續探索Rust的更多功能。記住,最好的學習方法就是動手實踐。所以,不要停下來,繼續探索Rust吧!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/40758.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/40758.shtml
英文地址,請注明出處:http://en.pswp.cn/web/40758.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

VBA初學:零件成本統計之一(任務匯總)

經過前期一年多對金蝶K3生產任務流程和操作的改造和優化&#xff0c;現在總算可以將零件加工各個環節的成本進行歸集了。 原本想寫存儲過程&#xff0c;通過直接SQL報表做到K3中去的&#xff0c;但財務原本就是用EXCEL&#xff0c;可以方便調整和保存&#xff0c;加上還有一部分…

便攜式氣象站:探索自然的智慧伙伴

在探索自然奧秘、追求科學真理的道路上&#xff0c;氣象數據始終是我們不可或缺的指引。然而&#xff0c;傳統的氣象站往往龐大而笨重&#xff0c;難以在偏遠地區或移動環境中靈活部署。 便攜式氣象站&#xff0c;顧名思義&#xff0c;是一種小巧輕便、易于攜帶和安裝的氣象觀測…

模擬面試002-Java開發工程師+簡歷+問題+回答

模擬面試002-Java開發工程師簡歷問題回答 目錄 模擬面試002-Java開發工程師簡歷問題回答面試簡歷面試官題問Java基礎與編程框架與工具數據庫與性能優化項目經驗與實踐團隊合作與溝通 求職者回答Java基礎與編程框架與工具數據庫與性能優化項目經驗與實踐團隊合作與溝通 參考資料…

由于找不到xinput1 3.dll無法繼續執行重新安裝程序

如果您的計算機提示無法找到xinput1_3.dll文件&#xff0c;這可能表明您的計算機存在問題。在這種情況下&#xff0c;您需要立即對xinput1_3.dll文件進行修復&#xff0c;否則您的某些程序將無法啟動。以下是解決無法找到xinput1_3.dll文件的方法。 一、關于xinput1_3.dll文件的…

你要允許此應用對你的設備進行更改嗎

在Windows 11中&#xff0c;當你看到提示“你要允許此應用對你的設備進行更改嗎&#xff1f;”時&#xff0c;這是系統檢測到某個應用或軟件試圖對你的設備進行更改或安裝的提醒。這個提示是為了保護你的系統免受潛在惡意軟件的侵害。如果你選擇“是”&#xff0c;則應用可以繼…

Elasticsearch 實現 Word、PDF,TXT 文件的全文內容提取與檢索

文章目錄 一、安裝軟件:1.通過docker安裝好Es、kibana安裝kibana:2.安裝原文檢索與分詞插件:之后我們可以通過doc命令查看下載的鏡像以及運行的狀態:二、創建管道pipeline名稱為attachment二、創建索引映射:用于存放上傳文件的信息三、SpringBoot整合對于原文檢索1、導入依賴…

安全及應用(更新)

一、賬號安全 1.1系統帳號清理 #查看/sbin/nologin結尾的文件并統計 [rootrootlocalhost ~]# grep /sbin/nologin$ /etc/passwd |wc -l 40#查看apache登錄的shell [rootrootlocalhost ~]# grep apache /etc/passwd apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin#改變…

Android增量更新----java版

一、背景 開發過程中&#xff0c;隨著apk包越來越大&#xff0c;全量更新會使得耗時&#xff0c;同時浪費流量&#xff0c;為了節省時間&#xff0c;使用增量更新解決。網上很多文章都不是很清楚&#xff0c;沒有手把手教學&#xff0c;使得很多初學者&#xff0c;摸不著頭腦&a…

2011年的數字IC設計面經

2011年老羅寫的面經&#xff0c;轉眼間2024年了&#xff0c;大家湊合著看吧&#xff0c;可以順便看看2011年的應屆生薪資。 本人通信工程碩士&#xff0c;非電子科班出身&#xff0c;主要找數字IC設計的工作&#xff0c;找工作找了一個月左右&#xff0c;還算滿意吧&#xff0…

邊緣概率密度、條件概率密度、邊緣分布函數、聯合分布函數關系

目錄 二維隨機變量及其分布離散型隨機變量連續型隨機變量邊緣分布邊緣概率密度舉例邊緣概率密度 條件概率密度邊緣概率密度與條件概率密度的區別邊緣概率密度條件概率密度舉個具體例子 參考資料 二維隨機變量及其分布 離散型隨機變量 把所有的概率&#xff0c;都理解成不同質量…

R迅速切換目錄 -R語言002

實用小操作系列 R定位當前目錄 getwd() [1] "/data/Rprofile1" #當前工作目錄&#xff0c;因為他讀取文件都是相對路徑&#xff0c;進當前目錄&#xff0c;一般不考慮絕對路徑&#xff0c;寫代碼容易亂呀&#xff0c;切目錄最簡單完善 R切換工作目錄 setwd(&q…

邏輯圖框架圖等結構圖類圖的高效制作方式不妨進來看看

**邏輯圖框架圖等結構圖類圖的高效制作方式不妨進來看看** 基于我們每天都在處理大量的數據和信息。為了更清晰地理解和傳達這些信息&#xff0c;結構圖、邏輯圖和框架圖等可視化工具變得越來越重要。然而&#xff0c;如何高效地制作這些圖表并確保其準確性和易讀性呢&#xf…

RedHat運維-LinuxSELinux基礎4-端口綁定SELinux上下文

1. SELinux將一個_________與一個SELinux上下文相連接&#xff1b; 2. SSH協議將22/tcp端口與__________SELinux上下文相聯系&#xff1b; 3. HTTP協議將80/tcp、443/tcp端口與____________SELinux上下文相聯系&#xff1b; 4. 列出所有端口的SELinux上下文信息的方法是_______…

Mongodb索引簡介

學習mongodb&#xff0c;體會mongodb的每一個使用細節&#xff0c;歡迎閱讀威贊的文章。這是威贊發布的第84篇mongodb技術文章&#xff0c;歡迎瀏覽本專欄威贊發布的其他文章。如果您認為我的文章對您有幫助或者解決您的問題&#xff0c;歡迎在文章下面點個贊&#xff0c;或者關…

Windows密碼憑證獲取

Windows HASH HASH簡介 hash &#xff0c;一般翻譯做散列&#xff0c;或音譯為哈希&#xff0c;所謂哈希&#xff0c;就是使用一種加密函數進行計算后的結果。這個 加密函數對一個任意長度的字符串數據進行一次數學加密函數運算&#xff0c;然后返回一個固定長度的字符串。…

常用字符集與亂碼原因

1.ASCII字符集&#xff1a;僅對英文字符編碼&#xff0c;每個字符用1B編碼&#xff0c;7位二進制足以表示所有ASCII字符集&#xff0c;因此最高位始終為0 2.GBK字符集&#xff1a;GB2312字符集&#xff08;簡體中文字符集&#xff09;BIG5字符集&#xff08;臺灣地區繁體中文字…

服裝購物商城系統小程序-計算機畢業設計源碼35058

摘要 服裝購物商城系統小程序&#xff0c;依托Spring Boot框架的強大支持&#xff0c;為用戶呈現了一個功能豐富、體驗流暢的在線購物平臺。該系統不僅涵蓋了商品展示、用戶注冊登錄、購物車管理、訂單處理、支付集成等核心購物流程&#xff0c;還引入了個性化推薦算法&#xf…

Jmeter使用JSON Extractor提取多個變量

1.當正則不好使時&#xff0c;用json extractor 2.提取多個值時&#xff0c;默認值必填&#xff0c;否則讀不到變量

什么是集港??貨代小白快來點贊收藏-深圳全球利物流有限公司

集港是什么意思? 集港的定義 集港是指將分散在各處的集裝箱集中到港口碼頭堆場的過程&#xff0c;即把各地的集裝箱匯集到港區&#xff0c;準備裝船。在船掛靠碼頭之前&#xff0c;碼頭會制定集港計劃&#xff0c;安排貨船的集裝箱在某個時間段內進入碼頭并擺放好&#xff0c;…

【js】this指向問題

1.首先先明確&#xff0c;this會出現在哪里。 this出現在全局作用域中&#xff0c;或函數作用域中&#xff08;普通函數、箭頭函數&#xff09;。 對象是不產生作用域的&#xff0c;對象的{}和函數的{}不一樣&#xff0c;this并不會直接出現在對象或類中&#xff0c;只會出現在…