国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Rust 基礎(chǔ)系列 #3: Rust 中的數(shù)據(jù)類型

開發(fā)
在本文中,我將講解標(biāo)量數(shù)據(jù)類型。我將在下一篇文章中講解第二類數(shù)據(jù)類型。

在 上一篇 關(guān)于 Rust 編程語言的文章中,我們提到了變量、常量和 遮蔽shadowing

現(xiàn)在來講解數(shù)據(jù)類型是再自然不過的了。

數(shù)據(jù)類型是什么?

將這個(gè)詞匯展開些單詞的順序改變一下你就會(huì)得到答案了;“數(shù)據(jù)類型” -> “數(shù)據(jù)的類型”。

計(jì)算機(jī)使用 0 和 1 來存儲(chǔ)數(shù)據(jù),但是為了讓數(shù)據(jù)在讀取時(shí)有意義,我們使用數(shù)據(jù)類型來表示這些 0 和 1 的含義。

Rust 有兩種數(shù)據(jù)類型:

  • 標(biāo)量數(shù)據(jù)類型:只能存儲(chǔ)單個(gè)值的類型。
  • 復(fù)合數(shù)據(jù)類型:可以存儲(chǔ)多個(gè)值,甚至是不同類型的值。

在本文中,我將講解標(biāo)量數(shù)據(jù)類型。我將在下一篇文章中講解第二類數(shù)據(jù)類型。

接下來是 Rust 中四種主要標(biāo)量數(shù)據(jù)類型的簡(jiǎn)要概述:

  • 整型:存儲(chǔ)整數(shù)。有每種特定情況下使用的子類型。
  • 浮點(diǎn)數(shù):存儲(chǔ)帶有小數(shù)部分的數(shù)字。有兩種基于大小的子類型。
  • 字符:使用 UTF-8 編碼存儲(chǔ)單個(gè)字符。(是的,你可以在字符中存儲(chǔ)表情符號(hào)*。)
  • 布爾值: 存儲(chǔ) true 或 false。(給那些無法就 0 是 true 還是 0 是 false 達(dá)成一致的開發(fā)者。)

整型

在編程語言中,整型指的是一個(gè)整數(shù)。Rust 中的整型要么是有符號(hào)的,要么是無符號(hào)的。無符號(hào)整型只能存儲(chǔ) 0 和正數(shù),而有符號(hào)整型可以存儲(chǔ)負(fù)數(shù)、0 和正數(shù)。

?? 一個(gè)有符號(hào)整型的范圍從 -(2n-1) 開始,以 (2n-1)-1 結(jié)束。同樣,無符號(hào)整型的范圍從 0 開始,以 (2n)-1 結(jié)束。

這是根據(jù)符號(hào)和長(zhǎng)度可用的整型:

Rust 中的整型數(shù)據(jù)類型

Rust 中的整型數(shù)據(jù)類型

正如你所見,Rust 有 8、16、32、64 甚至 128 位的有符號(hào)和無符號(hào)整型!

使用 *size 的整型根據(jù)計(jì)算機(jī)的架構(gòu)而變化。在 8 位微控制器上,它是 *8,在 32 位的舊計(jì)算機(jī)上,它是 *32,在現(xiàn)代 64 位系統(tǒng)上,它是 *64

使用 *size 是為了存儲(chǔ)與內(nèi)存(這與裸機(jī)相關(guān))有關(guān)的數(shù)據(jù),比如指針、偏移量等。

?? 當(dāng)你沒有顯式地指定整型的子類型時(shí),Rust 編譯器會(huì)默認(rèn)推斷為 i32。顯然,如果值比 i32 能存儲(chǔ)的值大或小,Rust 編譯器會(huì)禮貌地報(bào)錯(cuò)并要求你手動(dòng)指定類型。

Rust 不僅允許你以十進(jìn)制形式存儲(chǔ)整數(shù),還允許你以二進(jìn)制、八進(jìn)制和十六進(jìn)制形式存儲(chǔ)整數(shù)。

為了更好的可讀性,你可以使用下劃線 _ 來代替逗號(hào)來書寫/讀取大數(shù)。

fn main() {
    let bin_value = 0b100_0101; // 使用前綴“0b”表示二進(jìn)制
    let oct_value = 0o105; // 使用前綴“0o”表示八進(jìn)制
    let hex_value = 0x45; // 使用前綴“0x”表示十六進(jìn)制
    let dec_value = 1_00_00_000; // 和寫一克若(1,00,00,000)一樣
    println!("二進(jìn)制值: {bin_value}");
    println!("八進(jìn)制值: {oct_value}");
    println!("十六進(jìn)制值: {hex_value}");
    println!("十進(jìn)制值: {dec_value}");
}

我使用二進(jìn)制、八進(jìn)制和十六進(jìn)制分別將十進(jìn)制數(shù) 69 存儲(chǔ)在變量 bin_valueoct_value 和 hex_value 中。在變量 dec_value 中,我存儲(chǔ)了數(shù)字 1 克若1 Crore(一千萬),并且使用了下劃線替代逗號(hào),這是印度的書寫系統(tǒng)。對(duì)于那些更熟悉國(guó)際計(jì)數(shù)系統(tǒng)的人來說,你可以將其寫成 10_000_000

在編譯并運(yùn)行這個(gè)二進(jìn)制文件后,我得到了如下輸出:

二進(jìn)制值: 69
八進(jìn)制值: 69
十六進(jìn)制值: 69
十進(jìn)制值: 10000000

浮點(diǎn)數(shù)

浮點(diǎn)數(shù)是一種存儲(chǔ)帶有小數(shù)部分的數(shù)字的數(shù)據(jù)類型。

與 Rust 中的整型不同,浮點(diǎn)數(shù)只有兩種子類型:

  • f32: 單精度浮點(diǎn)數(shù)類型
  • f64: 雙精度浮點(diǎn)數(shù)類型

和 Rust 中的整型一樣,當(dāng) Rust 推斷一個(gè)變量的類型時(shí),如果它看起來像一個(gè)浮點(diǎn)數(shù),那么它就會(huì)被賦予 f64 類型。這是因?yàn)?nbsp;f64 類型比 f32 類型有更高的精度,并且在大多數(shù)計(jì)算操作中幾乎和 f32 類型一樣快。請(qǐng)注意,浮點(diǎn)數(shù)據(jù)類型(f32 和 f64)都是有符號(hào)

?? Rust 編程語言按照 IEEE 754 二進(jìn)制浮點(diǎn)數(shù)表示與算術(shù)標(biāo)準(zhǔn)存儲(chǔ)浮點(diǎn)數(shù)。

fn main() {
    let pi: f32 = 3.1400; // f32
    let golden_ratio = 1.610000; // f64
    let five = 5.00; // 小數(shù)點(diǎn)表示它必須被推斷為浮點(diǎn)數(shù)
    let six: f64 = 6.; // 盡管類型說明被顯式的添加了,小數(shù)點(diǎn)也是**必須**的
    println!("pi: {pi}");
    println!("黃金比例: {golden_ratio}");
    println!("五: {five}");
    println!("六: {six}");
}

仔細(xì)看第 5 行。盡管我已經(jīng)為變量 six 指定了類型,但我必須至少加上一個(gè)小數(shù)點(diǎn)。小數(shù)點(diǎn)之后有什么就由你決定了。

程序的輸出是相當(dāng)可預(yù)測(cè)的... 嗎?

pi: 3.14
黃金比例: 1.61
五: 5
六: 6

在上面的輸出中,你可能已經(jīng)注意到,當(dāng)顯示變量 pigolden_ratio 和 five 中存儲(chǔ)的值時(shí),我在變量聲明時(shí)在結(jié)尾增加的零已經(jīng)消失了。

就算這些零沒有被 移除,它們也會(huì)在通過 println 宏輸出值時(shí)被省略。所以,不,Rust 沒有篡改你的變量值。

字符

你可以在一個(gè)變量中存儲(chǔ)一個(gè)字符,類型是 char。像 80 年代的傳統(tǒng)編程語言一樣,你可以存儲(chǔ)一個(gè) ASCII 字符。但是 Rust 還擴(kuò)展了字符類型,以存儲(chǔ)一個(gè)有效的 UTF-8 字符。這意味著你可以在一個(gè)字符中存儲(chǔ)一個(gè)表情符號(hào) ??

?? 一些表情符號(hào)實(shí)際上是兩個(gè)已有表情符號(hào)的組合。一個(gè)很好的例子是“燃燒的心”表情符號(hào):????。這個(gè)表情符號(hào)是通過使用 零寬度連接器 來組合兩個(gè)表情符號(hào)構(gòu)成的:?? + ?? = ????

Rust 的字符類型無法存儲(chǔ)這樣的表情符號(hào)。

fn main() {
    let a = 'a';
    let p: char = 'p'; // 帶有顯性類型說明
    let crab = '??';
    println!("Oh look, {} {}! :{}", a, crab, p);
}

正如你所見,我已經(jīng)將 ASCII 字符 'a' 和 'p' 存儲(chǔ)在變量 a 和 p 中。我還在變量 crab 中存儲(chǔ)了一個(gè)有效的 UTF-8 字符,即螃蟹表情符號(hào)。然后我打印了存儲(chǔ)在每個(gè)變量中的字符。

這是輸出:

Oh look, a ??! :p

布爾值

在 Rust 中,布爾值類型只存儲(chǔ)兩個(gè)可能的值之一:true 或 false。如果你想顯性指定類型,請(qǐng)使用 bool

fn main() {
    let val_t: bool = true;
    let val_f = false;
    println!("val_t: {val_t}");
    println!("val_f: {val_f}");
}

編譯并執(zhí)行上述代碼后,結(jié)果如下:

val_t: true
val_f: false

額外內(nèi)容:顯性類型轉(zhuǎn)換

在上一篇講述 Rust 編程語言中的變量的文章中,我展示了一個(gè)非常基礎(chǔ)的 溫度轉(zhuǎn)換程序。在那里,我提到 Rust 不允許隱式類型轉(zhuǎn)換。

但這不代表 Rust 也不允許 顯性 類型轉(zhuǎn)換 ; )

要進(jìn)行顯性類型轉(zhuǎn)換,使用 as 關(guān)鍵字,后面跟著要轉(zhuǎn)換的數(shù)據(jù)類型。

這是一個(gè)示例程序:

fn main() {
    let a = 3 as f64; // f64
    let b = 3.14159265359 as i32; // i32
    println!("a: {a}");
    println!("b: {b}");
}

在第二行,我沒有使用 3.0,而是在 3 后面寫上 as f64,以表示我希望編譯器將 3(一個(gè)整數(shù))轉(zhuǎn)換為 64 位浮點(diǎn)數(shù)的類型轉(zhuǎn)換。第三行也是一樣。但是這里,類型轉(zhuǎn)換是有損的。這意味著小數(shù)部分 完全消失。它不是存儲(chǔ)為 3.14159265359,而是存儲(chǔ)為簡(jiǎn)單的 3

程序的輸出可以驗(yàn)證這一點(diǎn):

a: 3
b: 3

總結(jié)

本文介紹了 Rust 中的原始/標(biāo)量數(shù)據(jù)類型。主要有四種這樣的數(shù)據(jù)類型:整型、浮點(diǎn)數(shù)、字符和布爾值。

整型用于存儲(chǔ)整數(shù),它們有幾種子類型,基于它們是有符號(hào)還是無符號(hào)以及長(zhǎng)度。浮點(diǎn)數(shù)用于存儲(chǔ)帶有小數(shù)的數(shù)字,根據(jù)長(zhǎng)度有兩種子類型。字符數(shù)據(jù)類型用于存儲(chǔ)單個(gè)有效的 UTF-8 編碼字符。最后,布爾值用于存儲(chǔ) true 或 false 值。

在下一章中,我將討論數(shù)組和元組等復(fù)合數(shù)據(jù)類型。敬請(qǐng)關(guān)注。

責(zé)任編輯:龐桂玉 來源: Linux中國(guó)
相關(guān)推薦

2023-05-29 16:25:59

Rust函數(shù)

2021-04-28 18:16:24

Rust數(shù)據(jù)類型

2023-05-23 18:11:12

Rust數(shù)組元組

2024-04-11 13:02:10

Rust數(shù)據(jù)類型

2023-11-01 16:01:00

數(shù)據(jù)類型Rust

2023-06-15 17:00:11

Rust循環(huán)

2024-04-11 12:19:01

Rust數(shù)據(jù)類型

2023-06-23 14:15:09

Rust編程

2023-04-10 18:03:18

Rust編程語言

2023-06-11 17:25:13

Rust條件語句

2023-05-04 07:33:39

Rust變量常量

2021-07-07 21:40:46

Rust函數(shù)勸退

2024-04-26 00:00:00

Rust檢查器代碼

2024-03-19 08:54:20

Rust語言內(nèi)存管理應(yīng)用程序開發(fā)

2024-03-07 09:00:04

Rust數(shù)據(jù)可視化

2019-08-12 11:40:48

數(shù)據(jù)庫SQLite3數(shù)據(jù)類型

2024-11-08 09:19:28

2022-12-30 11:05:40

Rust代碼

2023-11-28 13:20:00

Rust匹配枚舉

2025-01-03 09:12:11

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美一级电影免费在线观看| 国产精品后入内射日本在线观看| 国产xxxxx| 成人免费网站在线观看视频| 自拍偷拍亚洲| 国内久久视频| 亚洲黄色小说网站| 欧美激情视频播放| 亚洲精品一区二区三区婷婷月| 欧美一区亚洲一区| 色诱视频在线观看| www久久99| 三级毛片在线免费看| 亚洲国产综合在线观看| 国产福利一区在线| www.欧美三级电影.com| 国产成人无码a区在线观看视频| 噜噜噜在线观看播放视频| 日韩欧美自拍| 一本色道综合亚洲| 亚洲桃花岛网站| 日韩中字在线观看| 午夜精品久久久久久毛片| 亚洲国产精品欧美一二99| 欧美一级在线播放| 久久综合色播| 欧洲激情综合| 最新亚洲一区| 99精品视频免费观看视频| 欧美精品久久99久久在免费线| 51精品国产人成在线观看| 欧美亚洲黄色| 亚洲欧美综合久久久| 欧美日韩有码| 亚洲在线成人精品| 久久国产一区二区| 欧美性爽视频| 欧美国产高潮xxxx1819| 色一情一乱一乱一91av| 国产综合精品一区二区三区| www视频在线看| 蜜臀av一区二区在线观看| 久久综合九色综合欧美就去吻| 久久五月情影视| 成人av片网址| 国产传媒在线观看| 成人动漫视频在线| 国产精品日日摸夜夜添夜夜av| 成人影院免费观看| 国产日韩综合av| 伊人久久大香线蕉成人综合网| 欧美野外wwwxxx| 韩国精品一区二区| 欧美一三区三区四区免费在线看 | 国产免费不卡| 欧美中文字幕一区二区三区亚洲| 99视频在线免费播放| 欧美综合国产| 91精品国产综合久久久久久蜜臀| 亚洲成人1区| 亚洲色无码播放| 理论不卡电影大全神| 日韩电影不卡一区| 2014亚洲片线观看视频免费| 精品国模在线视频| 中文字幕av高清在线观看| 狠狠色丁香久久综合频道| 2020欧美日韩在线视频| 生活片a∨在线观看| 国产在线精品视频| 69久久夜色精品国产69乱青草| 国产欧美日韩视频| 97超碰免费在线| 伊人夜夜躁av伊人久久| 国产精品夜夜夜爽张柏芝| 欧美三级午夜理伦三级在线观看 | 亚洲伊人久久综合| 成a人片在线观看www视频| www.欧美.com| 国产免费一区视频观看免费| 国产视频网站一区二区三区| 91麻豆精品国产91久久久久久| 在线观看免费视频高清游戏推荐 | 午夜精品一区二区三区免费视频 | 午夜影院免费在线| 日韩欧美中文在线| 麻豆电影传媒二区| 国产乱人伦精品一区二区在线观看| 国产三级精品网站| 成人激情久久| 中文字幕9999| 伊人久久综合一区二区| 3d成人动漫网站| 阿v免费在线观看| 欧美日韩亚洲综合在线| 91网在线看| 韩国一区二区在线观看| 国产精品成人免费电影| 日韩成人亚洲| 亚洲国产精品推荐| 中国一级特黄毛片大片| 成人精品电影在线观看| 日本在线视频不卡| 新67194成人永久网站| 风间由美一区二区三区| 婷婷综合社区| 亚洲综合在线中文字幕| 亚洲乱码在线| 成人欧美一区二区三区视频 | 欧美一级片免费看| 黄色精品免费看| 欧美日韩国产另类一区| 国产原创在线观看| 深夜福利日韩在线看| 99综合99| 久99久在线视频| 激情亚洲影院在线观看| 中文字幕亚洲欧美日韩高清 | 性欧美video另类hd尤物| 亚洲女人天堂成人av在线| sis001亚洲原创区| 国产丝袜一区二区三区免费视频| 美女av在线免费看| 欧美猛交免费看| 亚洲视频三区| 亚洲欧洲国产伦综合| 成人黄色图片网站| 久久久久久亚洲| 欧美精选一区二区三区| www.久久久| 国产河南妇女毛片精品久久久 | 国产精品久久久久9999| 欧美国产小视频| 国产精品国产一区二区| 日韩在线观看一区二区| 一区二区三区无码高清视频| 96sao精品免费视频观看| 国产91在线高潮白浆在线观看| 成人免费在线观看av| 欧美日韩精品一区| 99久久99久久免费精品蜜臀| 成a人v在线播放| 日韩电影在线观看中文字幕| 久久久一本精品99久久精品66| 婷婷精品在线观看| 精品999在线观看| 国产高清视频一区| jlzzjlzz欧美大全| 精品欧美久久久| 国产精品久久久乱弄| 91蜜桃网站免费观看| 免费一级欧美片在线观看| 免费黄色特级片| 欧美中文字幕一区| 精品国产1区| 欧美性受xxxx黑人猛交88| 亚洲曰韩产成在线| 日韩成人免费av| 一个人看的www久久| 国产99久久久国产精品成人免费| 欧美精品一区二区三区久久| 久久久久久久免费视频了| 97电影在线看视频| 欧美日韩国产精品一区二区三区四区| 成人免费播放器| 欧美性做爰猛烈叫床潮| 亚洲黄页在线观看| 欧美精品一区二区三区三州| 欧美日韩色婷婷| 韩国三级大全久久网站| 欧美三日本三级少妇三99| 亚洲超碰精品一区二区| 日韩精品一区二区三区中文 | 亚洲免费高清视频在线| 中国一级特黄毛片大片| 日韩欧美精品中文字幕| 国产原创在线观看| 欧美中在线观看| 久久99精品一区二区三区三区| 亚洲第一区视频| 国内偷自视频区视频综合| 国产一区二区网址| 男人的天堂在线免费视频| 国产精品高潮呻吟久久av野狼 | 色综合咪咪久久| 亚州综合一区| √新版天堂资源在线资源| 国产裸体写真av一区二区| 国产片一区二区| 成人亚洲综合| 国内精品国产三级国产99| 亚洲成人免费在线视频| 一区在线视频| 成人资源www网在线最新版| 欧美另类一区| 亚洲精品午夜久久久| 99re8这里有精品热视频免费| 一区二区三区四区视频在线| 欧美日韩色综合| 亚洲美女网站|