? ? ? ?在上一期視頻里我們使用 cargo run 運(yùn)行了個 helloworld ,在 hello-rust 目錄里再次運(yùn)行 tree 命令:
? ? ? 我們發(fā)現(xiàn)在 hello-rust 目錄下多了一個 Cargo.lock 文件和一個 target 文件夾粘室。Cargo.lock 文件用于記錄鎖定我們當(dāng)前項(xiàng)目依賴的庫版本號,什么意思呢?
? ? ? ?比如我們項(xiàng)目現(xiàn)在依賴一個庫 L,L 庫有倆個版本 1.1 和 1.2 , 我們在 Cargo.toml 文件里配置了我們的項(xiàng)目依賴 1 版本 , 并沒有明確指定是 1.1還是 1.2, 這個時候 Cargo 幫我們下載了 1.2 并記錄到 Cargo.lock 文件中,以后再編譯這個項(xiàng)目的時候就優(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í)行文件名稱跟我們的項(xiàng)目名稱一樣也叫 hello-rust, 有同學(xué)可能會問, cargo 怎么知道我們的項(xiàng)目叫 hello-rust 呢,如果我想再小激動一把讓它生成的可執(zhí)行文件叫 hello-tianlangstuido 咋辦呢?
? ? ? ? 這里我們可以看下 Cargo.toml 的內(nèi)容:
? ? ? ? ?package 區(qū)域的 name 項(xiàng)用于設(shè)定我們當(dāng)前的項(xiàng)目名稱也就是生成的可執(zhí)行文件的名稱,把這里的 hello-rust 改成 hello-tianlangstuido, 生成的可執(zhí)行文件就叫 hello-tianlangstudio 了, name 配置項(xiàng)下面的version 用于配置我們項(xiàng)目的版本號,這個我們可以根據(jù)項(xiàng)目功能完成情況自己指定,再下面的 authors配置項(xiàng)用于配置開發(fā)者信息,你可以寫上自己的名字或聯(lián)系方式、github 賬號郵箱什么的对供。再下面的 edition 用于指定當(dāng)前項(xiàng)目使用的 rust 版本這里就不能隨便改了,因?yàn)?rust 版本就倆個,一個2015 ,一個 2018 氛濒。2018 版本是在 2015 版本的基礎(chǔ)上做了重新設(shè)計和功能改進(jìn),所以我們現(xiàn)在使用2018 版本产场。再下面的 dependencies 用于指定我們項(xiàng)目依賴的官方或第三方提供的 rust 庫,我們當(dāng)前的項(xiàng)目沒有用到外部庫所以這里為空鹅髓。
在上一期中我們還小激動了一把,通過修改 main.rs 文件把我們的名字輸出到了命令終端上。
? ? ? ?像“ Hello京景,TianlangStudio 迈勋!”這樣用雙引號括起來文本信息我們稱為字符串字面量。像這樣的字面量還有整數(shù)字面量(整數(shù)也就是不帶小數(shù)沒有小數(shù)點(diǎn)的數(shù)字如 1\2\3\4 )醋粟、浮點(diǎn)數(shù)字面量 ( 浮點(diǎn)數(shù)也就是帶小數(shù)點(diǎn)的數(shù)字如1.5/1.6) 、布爾字面量(布爾是英文 boolean 的音譯,代表 ture 或 false )重归、 字符字面量(是用單引號括起來的一個字符,如‘ A’’ ,‘ Z’’ ),這里要注意我們在編寫代碼中語法中所使用的標(biāo)點(diǎn)符號都是英文輸入法狀態(tài)的如果使用中文輸入法狀態(tài)的符號可能會報錯,中文狀態(tài)的標(biāo)點(diǎn)符號和英文狀態(tài)的是不一樣的,大家可以對比下米愿。
? ? ? 我們通過修改 "Hello World" 為 "Hello,TianlangStudio!" 在命令終端輸出了"Hello,TianlangStudio!"?,大家應(yīng)該已經(jīng)注意到在我們的需求中只需要修改" world" 為" tianlangstuido" 而不需要修改前面的" Hello" ,當(dāng)前的做法我們很容易就會誤傷到 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 來達(dá)到輸出“Hello违柏,TianlangStudio” 的目的。
? ? ? ? ?這里的 name 因?yàn)樗闹凳且粋€字符串字面量,我們就稱為字符串類型的變量,跟字面量一樣,變量的類型除了 字符串類型還有整數(shù)類型香椎、浮點(diǎn)數(shù)類型漱竖、布爾類型、字符類型這樣的基本數(shù)據(jù)類型畜伐。
? ? ? ? ?這一期我們就先跟數(shù)據(jù)類型混個臉熟,如果在觀看中有什么問題歡迎通過平臺給我們留言馍惹。
? ? ? ? 這里是一條 Stack Overflow2019 關(guān)于編程語言薪酬排行開發(fā)者調(diào)查報告
? ? ? ? 我們可以看到在全球排行 Top10 里已經(jīng)出現(xiàn)了 Rust 的身影
? ? ? ? 相關(guān)視頻請訪問