日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Rust編程基礎之六大數據類型

來源: 責編: 時間:2023-11-01 17:00:43 350觀看
導讀1.Rust數據類型在 Rust 中, 每一個值都屬于某一個 數據類型(data type), 這告訴 Rust 它被指定為何種數據,以便明確數據處理方式。我們將看到兩類數據類型子集:標量(scalar)和復合(compound)。Rust是靜態類型(statically typed

1.Rust數據類型

在 Rust 中, 每一個值都屬于某一個 數據類型(data type), 這告訴 Rust 它被指定為何種數據,以便明確數據處理方式。我們將看到兩類數據類型子集:標量(scalar)和復合(compound)。M9X28資訊網——每日最新資訊28at.com

Rust是靜態類型(statically typed)語言,也就是說在編譯時就必須知道所有變量的類型。根據值及其使用方式,編譯器通常可以推斷出我們想要用的類型。當多種類型均有可能時,必須增加類型注解,像這樣:M9X28資訊網——每日最新資訊28at.com

let u_number: u32 = "42".parse().expect("Not a number!");

如果不像上面的代碼這樣添加類型注解 : u32,Rust 會顯示如下錯誤,這說明編譯器需要我們提供更多信息,來了解想要的類型:M9X28資訊網——每日最新資訊28at.com

圖片M9X28資訊網——每日最新資訊28at.com

2.標量類型

標量(scalar)類型代表一個單獨的值。Rust 有四種基本的標量類型:整型、浮點型、布爾類型和字符類型。M9X28資訊網——每日最新資訊28at.com

2.1 整型

整數 是一個沒有小數部分的數字。下面表格展示了 Rust 內建的整數類型。我們可以使用其中的任一個來聲明一個整數值的類型。M9X28資訊網——每日最新資訊28at.com

長度M9X28資訊網——每日最新資訊28at.com

有符號M9X28資訊網——每日最新資訊28at.com

無符號M9X28資訊網——每日最新資訊28at.com

8-bitM9X28資訊網——每日最新資訊28at.com

i8M9X28資訊網——每日最新資訊28at.com

u8M9X28資訊網——每日最新資訊28at.com

16-bitM9X28資訊網——每日最新資訊28at.com

i16M9X28資訊網——每日最新資訊28at.com

u16M9X28資訊網——每日最新資訊28at.com

32-bitM9X28資訊網——每日最新資訊28at.com

i32M9X28資訊網——每日最新資訊28at.com

u32M9X28資訊網——每日最新資訊28at.com

64-bitM9X28資訊網——每日最新資訊28at.com

i64M9X28資訊網——每日最新資訊28at.com

u64M9X28資訊網——每日最新資訊28at.com

128-bitM9X28資訊網——每日最新資訊28at.com

i128M9X28資訊網——每日最新資訊28at.com

u128M9X28資訊網——每日最新資訊28at.com

archM9X28資訊網——每日最新資訊28at.com

isizeM9X28資訊網——每日最新資訊28at.com

usizeM9X28資訊網——每日最新資訊28at.com

每一個變體都可以是有符號或無符號的,并有一個明確的大小。有符號 和 無符號 代表數字能否為負值,換句話說,這個數字是否有可能是負數(有符號數),或者永遠為正而不需要符號(無符號數)。這有點像在紙上書寫數字:當需要考慮符號的時候,數字以加號或減號作為前綴;然而,可以安全地假設為正數時,加號前綴通常省略。有符號數以補碼形式存儲。M9X28資訊網——每日最新資訊28at.com

每一個有符號的變體可以儲存包含從 -(2n - 1) 到 2n - 1 - 1 在內的數字,這里 n 是變體使用的位數。所以 i8 可以儲存從 -(27) 到 27 - 1 在內的數字,也就是從 -128 到 127。無符號的變體可以儲存從 0 到 2n - 1 的數字,所以 u8 可以儲存從 0 到 28 - 1 的數字,也就是從 0 到 255。M9X28資訊網——每日最新資訊28at.com

另外,isize 和 usize 類型依賴運行程序的計算機架構:64 位架構上它們是 64 位的,32 位架構上它們是 32 位的。M9X28資訊網——每日最新資訊28at.com

可以使用以下表格的任何一種形式編寫數字字面值。請注意可以是多種數字類型的數字字面值允許使用類型后綴,例如 57u8 來指定類型,同時也允許使用 _ 作為分隔符以方便讀數,例如1_000,它的值與你指定的 1000 相同。M9X28資訊網——每日最新資訊28at.com

數字字面值M9X28資訊網——每日最新資訊28at.com

例子M9X28資訊網——每日最新資訊28at.com

Decimal (十進制)M9X28資訊網——每日最新資訊28at.com

98_222M9X28資訊網——每日最新資訊28at.com

Hex (十六進制)M9X28資訊網——每日最新資訊28at.com

0xffM9X28資訊網——每日最新資訊28at.com

Octal (八進制)M9X28資訊網——每日最新資訊28at.com

0o77M9X28資訊網——每日最新資訊28at.com

Binary (二進制)M9X28資訊網——每日最新資訊28at.com

0b1111_0000M9X28資訊網——每日最新資訊28at.com

Byte (單字節字符)(僅限于u8)M9X28資訊網——每日最新資訊28at.com

b'A'M9X28資訊網——每日最新資訊28at.com

那么該使用哪種類型的數字呢?如果拿不定主意,Rust 的默認類型通常是個不錯的起點,數字類型默認是 i32。isize 或 usize 主要作為某些集合的索引。M9X28資訊網——每日最新資訊28at.com

2.2 浮點型

Rust 也有兩個原生的 浮點數(floating-point numbers)類型,它們是帶小數點的數字。Rust 的浮點數類型是 f32 和 f64,分別占 32 位和 64 位。默認類型是 f64,因為在現代 CPU 中,它與 f32 速度幾乎一樣,不過精度更高。所有的浮點型都是有符號的。M9X28資訊網——每日最新資訊28at.com

以下是浮點數的代碼例子:M9X28資訊網——每日最新資訊28at.com

fn main() {    let x = 2.0; // f64    let y: f32 = 3.0; // f32}

浮點數采用 IEEE-754 標準表示。f32 是單精度浮點數,f64 是雙精度浮點數。M9X28資訊網——每日最新資訊28at.com

2.3 布爾型

正如其他大部分編程語言一樣,Rust 中的布爾類型有兩個可能的值:true 和 false。Rust 中的布爾類型使用 bool 表示。M9X28資訊網——每日最新資訊28at.com

布爾型的使用例子如下:M9X28資訊網——每日最新資訊28at.com

fn main() {    let t = true;    let f: bool = false;}

使用布爾值的主要場景是條件表達式,例如 if 表達式。M9X28資訊網——每日最新資訊28at.com

2.4 字符類型

Rust 的 char 類型是語言中最原生的字母類型。下面是一些聲明 char 值的例子:M9X28資訊網——每日最新資訊28at.com

fn main() {    let c = 'z';    let z: char = '?';    let heart_eyed_cat = ' 
                

本文鏈接:http://www.www897cc.com/showinfo-26-16367-0.htmlRust編程基礎之六大數據類型

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 掌握Golang匿名函數

下一篇: Go語言中的閉包:封裝數據與功能的強大工具

標簽:
  • 熱門焦點
  • K60至尊版狂暴引擎2.0加持:超177萬跑分斬獲性能第一

    Redmi的后性能時代戰略發布會今天下午如期舉辦,在本次發布會上,Redmi公布了多項關于和聯發科的深度合作,以及新機K60 Ultra在軟件和硬件方面的特性,例如:“K60 至尊版,雙芯旗艦
  • 小米降噪藍牙耳機Necklace分享:聽一首歌 讀懂一個故事

    在今天下午的小米Civi 2新品發布會上,小米還帶來了一款新的降噪藍牙耳機Necklace,我們也在發布結束的第一時間給大家帶來這款耳機的簡單分享。現在大家能見到最多的藍牙耳機
  • 十個可以手動編寫的 JavaScript 數組 API

    JavaScript 中有很多API,使用得當,會很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對它們進行一次小總結。現在開始吧。1.forEach()forEach()用于遍歷數組接收一參
  • 線程通訊的三種方法!通俗易懂

    線程通信是指多個線程之間通過某種機制進行協調和交互,例如,線程等待和通知機制就是線程通訊的主要手段之一。 在 Java 中,線程等待和通知的實現手段有以下幾種方式:Object 類下
  • 掘力計劃第 20 期:Flutter 混合開發的混亂之治

    在掘力計劃系列活動第20場,《Flutter 開發實戰詳解》作者,掘金優秀作者,Github GSY 系列目負責人戀貓的小郭分享了Flutter 混合開發的混亂之治。Flutter 基于自研的 Skia 引擎
  • 自動化在DevOps中的力量:簡化軟件開發和交付

    自動化在DevOps中扮演著重要角色,它提升了DevOps的效能。通過自動化工具和方法,DevOps團隊可以實現以下目標:消除手動和重復性任務。簡化流程。在整個軟件開發生命周期中實現更
  • Python異步IO編程的進程/線程通信實現

    這篇文章再講3種方式,同時講4中進程間通信的方式一、 Python 中線程間通信的實現方式共享變量共享變量是多個線程可以共同訪問的變量。在Python中,可以使用threading模塊中的L
  • 10天營收超1億美元,《星鐵》比《原神》差在哪?

    來源:伯虎財經作者:陳平安即便你沒玩過《原神》,你一定聽說過的它的大名。恨它的人把《原神》開服那天稱作是中國游戲史上最黑暗的一天,有粉絲因為索尼在PS平臺上線《原神》,怒而
  • AI芯片初創公司Tenstorrent獲三星和現代1億美元投資

    Tenstorrent是一家由芯片行業資深人士Jim Keller領導的加拿大初創公司,專注于開發人工智能芯片,該公司周三表示,已經從現代汽車集團和三星投資基金等
Top 主站蜘蛛池模板: 新兴县| 施甸县| 桦川县| 奇台县| 秭归县| 高邮市| 泸西县| 衡山县| 隆化县| 桐城市| 玉溪市| 吕梁市| 海城市| 汉寿县| 兴安县| 浮山县| 安图县| 肥乡县| 怀仁县| 乌什县| 精河县| 甘孜县| 东兰县| 星子县| 德州市| 交城县| 新津县| 周口市| 大安市| 都兰县| 江达县| 莆田市| 太湖县| 揭阳市| 南宫市| 灵石县| 淮北市| 岳西县| 舞阳县| 汉源县| 黔南|