學習新時代編程語言Rust-3基本數(shù)據(jù)類型

? ? ? ?在上一期視頻里我們使用 cargo run 運行了個 helloworld ,在 hello-rust 目錄里再次運行 tree 命令:

tree

? ? ? 我們發(fā)現(xiàn)在 hello-rust 目錄下多了一個 Cargo.lock 文件和一個 target 文件夾。Cargo.lock 文件用于記錄鎖定我們當前項目依賴的庫版本號,什么意思呢?

? ? ? ?比如我們項目現(xiàn)在依賴一個庫 L,L 庫有倆個版本 1.1 和 1.2 , 我們在 Cargo.toml 文件里配置了我們的項目依賴 1 版本 , 并沒有明確指定是 1.1還是 1.2, 這個時候 Cargo 幫我們下載了 1.2 并記錄到 Cargo.lock 文件中,以后再編譯這個項目的時候就優(yōu)先使用 Cargo.lock 里記錄的版本,這么做有什么好處呢?

? ? ? ?這樣可以避免不同版本間不兼容問題,比如L庫又推出了庫又推出了 1.3 版本,但這個版本修改了一些功能跟1 .2 版本的使用方法已經(jīng)不一樣了,這個時候如果沒有 Cargo.lock 文件, Cargo 很可能就會去下載1 .3 版本使用,但我們的程序是按照1 .2 編寫的,這個時候程序編譯就會有問題了,有了 Cargo.lock 就可以避免出現(xiàn)這樣的情況。這個跟前端的包管理工具 yarn 生成的 yarn.lock 文件類似。

? ? ? ? target 文件夾里是 cargo 用來存放編譯時產(chǎn)生的中間結(jié)果和可執(zhí)行文件的,由 cargo 自己管理我們不用太在意,知道在這里能找到我們 cargo 編譯好的可執(zhí)行文件就好了,這里的可執(zhí)行文件名稱跟我們的項目名稱一樣也叫 hello-rust, 有同學可能會問, cargo 怎么知道我們的項目叫 hello-rust 呢,如果我想再小激動一把讓它生成的可執(zhí)行文件叫 hello-tianlangstuido 咋辦呢?

? ? ? ? 這里我們可以看下 Cargo.toml 的內(nèi)容:


Cargo.toml

? ? ? ? ?package 區(qū)域的 name 項用于設(shè)定我們當前的項目名稱也就是生成的可執(zhí)行文件的名稱,把這里的 hello-rust 改成 hello-tianlangstuido, 生成的可執(zhí)行文件就叫 hello-tianlangstudio 了, name 配置項下面的version 用于配置我們項目的版本號,這個我們可以根據(jù)項目功能完成情況自己指定,再下面的 authors配置項用于配置開發(fā)者信息,你可以寫上自己的名字或聯(lián)系方式、github 賬號郵箱什么的。再下面的 edition 用于指定當前項目使用的 rust 版本這里就不能隨便改了,因為 rust 版本就倆個,一個2015 ,一個 2018 。2018 版本是在 2015 版本的基礎(chǔ)上做了重新設(shè)計和功能改進,所以我們現(xiàn)在使用2018 版本。再下面的 dependencies 用于指定我們項目依賴的官方或第三方提供的 rust 庫,我們當前的項目沒有用到外部庫所以這里為空。

  在上一期中我們還小激動了一把,通過修改 main.rs 文件把我們的名字輸出到了命令終端上。


main.rs

? ? ? ?像“ Hello,TianlangStudio !”這樣用雙引號括起來文本信息我們稱為字符串字面量。像這樣的字面量還有整數(shù)字面量(整數(shù)也就是不帶小數(shù)沒有小數(shù)點的數(shù)字如 1\2\3\4 )、浮點數(shù)字面量 ( 浮點數(shù)也就是帶小數(shù)點的數(shù)字如1.5/1.6) 、布爾字面量(布爾是英文 boolean 的音譯,代表 ture 或 false )、 字符字面量(是用單引號括起來的一個字符,如‘ A’’ ,‘ Z’’ ),這里要注意我們在編寫代碼中語法中所使用的標點符號都是英文輸入法狀態(tài)的如果使用中文輸入法狀態(tài)的符號可能會報錯,中文狀態(tài)的標點符號和英文狀態(tài)的是不一樣的,大家可以對比下。

? ? ? 我們通過修改 "Hello World" 為 "Hello,TianlangStudio!" 在命令終端輸出了"Hello,TianlangStudio!"?,大家應(yīng)該已經(jīng)注意到在我們的需求中只需要修改" world" 為" tianlangstuido" 而不需要修改前面的" Hello" ,當前的做法我們很容易就會誤傷到 Hello 可能一不小心就修改成了 "Hell TianlangStudio"。那能不能把這個字符串需要修改的部分和不變的部分開編寫呢?這樣我們就可以分開修改了,以免傷及無辜。

  我們可以把這個字符串的不用變的前半部分定義為一個常量就是它通常就是這個值所以叫常量,后半部分的 world 在我們的需求里是需要改變的,要改變?yōu)?“TianlangStudio” ,我們可以定義一個變量來存儲這樣經(jīng)常需要變化的值,在 rust 中使用 const 關(guān)鍵字定義常量 , 使用 let 關(guān)鍵字定義變量。

? ? ? ? 我們來修改下 main.rs定義一個 HI常量并指定它的值為“ Hello”,定義一個 name 變量并指定它的值為“ TianlangStudio”, 在 println 中我們就可以輸出 HI和 name 來達到輸出“Hello,TianlangStudio” 的目的。

main.rs

? ? ? ? ?這里的 name 因為它的值是一個字符串字面量,我們就稱為字符串類型的變量,跟字面量一樣,變量的類型除了 字符串類型還有整數(shù)類型、浮點數(shù)類型、布爾類型、字符類型這樣的基本數(shù)據(jù)類型。

? ? ? ? ?這一期我們就先跟數(shù)據(jù)類型混個臉熟,如果在觀看中有什么問題歡迎通過平臺給我們留言。

? ? ? ? 這里是一條 Stack Overflow2019 關(guān)于編程語言薪酬排行開發(fā)者調(diào)查報告

top 10

? ? ? ? 我們可以看到在全球排行 Top10 里已經(jīng)出現(xiàn)了 Rust 的身影

? ? ? ? 相關(guān)視頻請訪問

Some of the biggest lies: It’s my parents fault. I didn’t go to the right school. Only a few people are born smart. I am not lucky. It’s never my fault. If only I had... If only circumstances were different ... If only I could...

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容