日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
2022Rust入門指南

Rust 是一門相對(duì)較新的編程語(yǔ)言,受到各個(gè)企業(yè)的程序員的歡迎。盡管如此,它仍是一門建立在之前所有事物之上的語(yǔ)言。畢竟,Rust 不是一天做出來(lái)的,所以即便 Rust 中的一些概念看起來(lái)與你從 Python、Java、C++ 等編程語(yǔ)言學(xué)到的東西大不相同,但它們都是基于同一個(gè)基礎(chǔ),那就是你一直與之交互(無(wú)論你是否知道)的 CPU 和 NUMA(非統(tǒng)一內(nèi)存訪問(wèn)Non Uniform Memory Access)架構(gòu),因此 Rust 中的一些新功能讓人感覺(jué)有些熟悉。

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供靖西企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、做網(wǎng)站、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為靖西眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。

現(xiàn)在,我的職業(yè)不是程序員。我沒(méi)耐心但我又有點(diǎn)兒強(qiáng)迫癥。當(dāng)我需要完成某件事時(shí),如果一門語(yǔ)言不能幫助我相對(duì)較快地獲得想要的結(jié)果,那么我很少會(huì)受到鼓舞而使用它。Rust 試圖平衡兩個(gè)矛盾:現(xiàn)代計(jì)算機(jī)對(duì)安全和結(jié)構(gòu)化代碼的需求,和現(xiàn)代程序員對(duì)編碼工作事半功倍的渴望。

安裝 Rust

??rust-lang.org??? 網(wǎng)站有豐富的的文檔指導(dǎo)如何安裝 Rust,但通常,它就像下載 ??sh.rustup.rs?? 腳本并運(yùn)行它一樣簡(jiǎn)單。

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

沒(méi)有類

Rust 沒(méi)有類,也不使用 ??class??? 關(guān)鍵字。Rust 確實(shí)有 ??struct?? 數(shù)據(jù)類型,但它的作用是充當(dāng)數(shù)據(jù)集合的一種模板。因此,你可以使用結(jié)構(gòu)體struct,而不是創(chuàng)建一個(gè)類來(lái)表示虛擬對(duì)象:

struct Penguin {
  genus: String,
  species: String,
  extinct: bool,
  classified: u64,
}

你可以像使用類一樣使用它。例如,當(dāng)定義完 ??Penguin?? 結(jié)構(gòu),你就可以創(chuàng)建它的實(shí)例,并與該實(shí)例進(jìn)行交互:

struct Penguin {
  genus: String,
  species: String,
  extinct: bool,
  classified: u64,
}

fn main() {
  let p = Penguin { genus: "Pygoscelis".to_owned(),
   species: "R adeli?".to_owned(), 
   extinct: false, 
   classified: 1841 };

  println!("Species: {}", p.species);    
  println!("Genus: {}", p.genus);
  println!("Classified in {}", p.classified);
  if p.extinct == true {
    println!("Sadly this penguin has been made extinct.");
  }
}

將 ??impl??? 數(shù)據(jù)類型與 ??struct?? 數(shù)據(jù)類型結(jié)合使用,你可以實(shí)現(xiàn)一個(gè)包含函數(shù)的結(jié)構(gòu)體,并且可以添加繼承和其他與類相似的特性。

函數(shù)

Rust 中的函數(shù)很像其他語(yǔ)言中的函數(shù)。每個(gè)函數(shù)都代表一組嚴(yán)謹(jǐn)?shù)娜蝿?wù),你可以在需要時(shí)調(diào)用它們。主函數(shù)名必須是 ??main??。

用 ??fn?? 關(guān)鍵字聲明函數(shù),后跟函數(shù)名稱和函數(shù)接受的所有參數(shù)。

fn foo() {
  let n = 8;
  println!("Eight is written as {}", n);
}

通過(guò)參數(shù),將信息從一個(gè)函數(shù)傳遞到另一個(gè)函數(shù)。例如,我已經(jīng)創(chuàng)建了一個(gè) ??Penguin??? 類(結(jié)構(gòu)),并且我有一個(gè) ??Penguin??? 的實(shí)例為 ??p???,將目標(biāo)函數(shù)的參數(shù)指定為 ??Penguin??? 類型,就可把 ??p?? 的屬性從一個(gè)函數(shù)傳遞到另一個(gè)函數(shù)。

fn main() {
  let p = Penguin { genus: "Pygoscelis".to_owned(), 
    species: "R adeli?".to_owned(), 
    extinct: false, classified: 1841 };
  printer(p);
}

fn printer(p: Penguin) {
  println!("Species: {}", p.species);    
  println!("Genus: {}", p.genus);
  println!("Classified in {}", p.classified);
  if p.extinct == true {
    println!("Sadly this penguin has been made extinct.");
  }
}

變量

Rust 默認(rèn)創(chuàng)建的為不可變immutable變量。這意味著你創(chuàng)建的變量以后無(wú)法更改。這段代碼雖然看起來(lái)沒(méi)問(wèn)題,但無(wú)法編譯:

fn main() {
 let n = 6;
  let n = 5;
}

但你可以使用關(guān)鍵字 ??mut?? 聲明一個(gè)可變mutable變量,因此下面這段代碼可以編譯成功:

fn main() {
  let mut n = 6;
  println!("Value is {}", n);
  n = 5;
  println!("Value is {}", n);
}

編譯

Rust 編譯器,至少就其報(bào)錯(cuò)信息而言,是可用的最好的編譯器之一。當(dāng)你在 Rust 中出錯(cuò)時(shí),編譯器會(huì)真誠(chéng)地告訴你做錯(cuò)了什么。實(shí)際上,僅通過(guò)從編譯器錯(cuò)誤消息中學(xué)習(xí),我就了解了 Rust 的許多細(xì)微差別(就我理解到的 Rust 的任何細(xì)微差別而言)。即便有時(shí)錯(cuò)誤消息太過(guò)于模糊,而不知所以然,互聯(lián)網(wǎng)搜索幾乎總能得到解釋。

啟動(dòng) Rust 程序的最簡(jiǎn)單方法是使用 ??cargo??,它是 Rust 的包管理和構(gòu)建系統(tǒng)。

$ mkdir myproject
$ cd myproject
$ cargo init 

以上命令為項(xiàng)目創(chuàng)建了基本的基礎(chǔ)架構(gòu),最值得注意的是 ??src??? 子目錄中的 ??main.rs?? 文件。打開此文件,把我為本文生成的示例代碼粘貼進(jìn)去:

struct Penguin {
  genus: String,
  species: String,
  extinct: bool,
  classified: u64,
}

fn main() {
  let p = Penguin { genus: "Pygoscelis".to_owned(), species: "R adeli?".to_owned(), extinct: false, classified: 1841 };
  printer(p);
  foo();
}

fn printer(p: Penguin) {
  println!("Species: {}", p.species);    
  println!("Genus: {}", p.genus);
  println!("Classified in {}", p.classified);
  if p.extinct == true {
    println!("Sadly this penguin has been made extinct.");
  }
}

fn foo() {
  let mut n = 6;
  println!("Value is {}", n);
  n = 8;
  println!("Eight is written as {}", n);
}

使用 ??cargo build?? 命令進(jìn)行編譯:

$ cargo build

執(zhí)行 ??target??? 子目錄下的二進(jìn)制程序,或者直接運(yùn)行 ??cargo run?? 命令來(lái)運(yùn)行你的項(xiàng)目:

$ cargo run
Species: R adeli?
Genus: Pygoscelis
Classified in 1841
Value is 6
Eight is written as 8

Crates

任何語(yǔ)言的大部分便利都來(lái)自于它的庫(kù)或模塊。在 Rust 中,進(jìn)行分發(fā)和跟蹤的庫(kù)稱為 “crate”(箱子)。??crates.io?? 是一個(gè)很好的社區(qū) crate 注冊(cè)網(wǎng)站。

把一個(gè) crate 添加到你的 Rust 項(xiàng)目,首先要在 ??Cargo.toml??? 文件中添加這個(gè) crate。例如,要安裝隨機(jī)數(shù)函數(shù),我使用名為 ??rand??? 的 crate,使用 ??*?? 作為通配符,以確保在編譯時(shí)獲得最新版本:

[package]
name = "myproject"
version = "0.1.0"
authors = ["Seth "]
edition = "2022"

[dependencies]
rand = "*"

在 Rust 代碼中使用它需要在最頂行使用 ??use?? 語(yǔ)句:

use rand::Rng;

以下是一些創(chuàng)建隨機(jī)種子和隨機(jī)范圍的示例代碼:

fn foo() {
  let mut rng = rand::thread_rng();
  let mut n = rng.gen_range(1..99);

  println!("Value is {}", n);
  n = rng.gen_range(1..99);
  println!("Value is {}", n);
}

你可以使用 ??cargo run??? 來(lái)運(yùn)行它,它會(huì)檢測(cè)代碼是否被更改并觸發(fā)一個(gè)新的構(gòu)建。構(gòu)建過(guò)程中下載名為 ??rand??? 的 ??crete??? 和它依賴的所有 ??crate??,編譯代碼,然后運(yùn)行它:

$ cargo run
Updating crates.io index
Downloaded ppv-lite86 v0.2.16
Downloaded 1 crate (22.2 KB) in 1.40s
 Compiling libc v0.2.112
 Compiling cfg-if v1.0.0
 Compiling ppv-lite86 v0.2.16
 Compiling getrandom v0.2.3
 Compiling rand_core v0.6.3
 Compiling rand_chacha v0.3.1
 Compiling rand v0.8.4
 Compiling rustpenguin v0.1.0 (/home/sek/Demo/rustpenguin)
 Finished dev [unoptimized + debuginfo] target(s) in 13.97s
 Running `target/debug/rustpenguin`

Species: R adeli?
Genus: Pygoscelis
Classified in 1841
Value is 70
Value is 35

Rust 速查表

Rust 是一門令人非常愉快的語(yǔ)言。集成了在線注冊(cè)網(wǎng)站、有用的編譯器和幾乎直觀的語(yǔ)法,它給人的適當(dāng)?shù)默F(xiàn)代感。

但請(qǐng)不要誤會(huì),Rust 仍是一門復(fù)雜的語(yǔ)言,它具有嚴(yán)格的數(shù)據(jù)類型、強(qiáng)作用域變量和許多內(nèi)置方法。Rust 值得一看,如果你要探索它,那么你應(yīng)該下載我們的免費(fèi) ??Rust 速查表??,以便快速了解基礎(chǔ)知識(shí)。越早開始,就越早了解 Rust。當(dāng)然,你應(yīng)該經(jīng)常練習(xí)以避免生疏。

??Rust 速查表??


網(wǎng)站欄目:2022Rust入門指南
本文URL:http://www.5511xx.com/article/dhsoshp.html