精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Rust語言:類型轉換,還可以這么玩,你學到了嗎

開發 后端
你是否遇到過設計比較奇葩的函數的形參,而你手中沒有適合的變量類型?你是否也曾絞盡腦汁的去提取各種嵌套類型里的核心變量的引用呢?

你是否遇到過設計比較奇葩的函數的形參,而你手中沒有適合的變量類型?

你是否也曾絞盡腦汁的去提取各種嵌套類型里的核心變量的引用呢?

只要你搞明白Rust的幾種常見的類型轉換,徹底告別編譯器的紅色警告,享受寫完就編譯通過的快感。

什么是類型轉換?

類型轉換,是調用函數時,根據函數要求的參數簽名類型A,將我們手中的類型B轉換為類型A的過程,而且不能改變B的所有權。一般的函數調用都要求我們傳遞引用,很少需要直接傳遞所有權的。

很多語言提供了向上轉型和向下轉型,例如Java和C++等,如此使用(B)A,即可將B強制轉換成A。但是強轉是有一定的風險的,Java里強轉失敗會拋出CastException,而在C++里有時候不拋異常,必須使用更高版本的cast系列函數去轉換,才可以保證轉換失敗時給出異常,避免產生內存安全的問題。

Rust雖然是各種安全風險可控的編程語言,但是也有一些是需要開發人員事先了解的,比如整型之間強轉的結果并不盡如人意。

as操作符

1、在編碼過程中,使用最多的轉換,要數整型的強制轉換了。

我們往往會遇見這樣的類型需求usize,這個類型一般代指長度或者數組索引,我們只有i32之類的整型變量是不能直接透傳進去的,必須使用as關鍵字作強制轉換后,才可以通過編譯器的檢測。

但是,這里會發生一些意想不到的事情,比如類型截斷。

什么是類型截斷,即一個值范圍較大的變量A轉換為值范圍較小的變量B,如果超出范圍,則將A減去B的區間長度。

例如,128超出了i8類型的范圍(-128,127),強轉之后的值等于128-256=-128。

2、在學習Trait的時候,我們發現一個問題,類型A可以實現很多Trait,有些Trait存在函數簽名相同的情況,但是內部實現卻不相同,如果使用A為主題去調用的話,編譯器無法判斷應該調用哪個函數,所以必須將A向上強轉為特定的Trait,以告知編譯器如何做出判斷。

例如,B和C是有同名含函數name()的Trait,A分別實現了他們,當A想要調用B的name()的時候,需要顯示轉換,避免歧義,如::name()。

3、as還可以在父類型與子類型之間相互轉換,比如&’static str和&'a str。'static生命周期是整個進程存活期間有效的,而'a的生命周期較短,我們稱&'static是&'a的子類型,使用'static:'a來表示。as可以將父子類型自由轉換,如&'static str as &'a str,這種做法的意義是為了滿足某些函數對生命周期的要求。

From和Into

這2個Trait定義在標準庫的convert模塊中,其實他們做的是同一件事情,不要被From和Into繞暈掉。

舉個形象的比喻,我吃飯,和飯被我吃,是一回事。只要我在吃飯,那么飯肯定正在被我吃,是一個道理。

Rust還為此定義了一個定理:如果類型A實現了From,則B類型實例調用into方法就可以轉換為類型A。

例如,我們常見的字符串String類型實現了From(&str),那么&str就可以into()為String。

大多數情況下,我們只需要實現From這個Trait即可,Rust為所有實現From的自動實現了反方向的Into。

From和Into也不是完全沒有異常發生的,當我們不確定轉換的結果是我們想要的時候,可以實現TryFrom和TryInto這兩個Trait,以捕獲可能發生的錯誤信息。

AsRef和AsMut

AsRef和AsMut可以將類型分別轉換為不可變引用和可變引用。這兩個Trait對我們實現可擴展的函數是非常有幫助的。

比如,我們想設計一個允許傳入&String和&str都可以的函數,那么像下圖中的test函數那樣做:

如果我們自己定義一個類型,最好能實現AsRef這個Trait,它會給我們帶來很多意想不到的實惠。

FromStr

Rust內置了很多幫助我們類型轉換的實現,字符串和其他類型之間的轉換,都會默認實現FromStr這個Trait。

如果想把一個字符串轉換為整型,可以使用parse函數,它會根據返回值類型自動解析字符串,以得到正確類型的返回值。

整型轉換為字符串,就不用多說了,直接format宏格式化即可。

寫在最后

雖然Rust類型繁多,但是類型的統一風格做的還是不錯的,通過各種Trait讓類型與類型之間的邏輯脈絡有了統一的可能性,不得不說,理解了類型轉換之后,在設計代碼的時候可以更加的優雅,兼容性更好。

作為十幾年的程序員來說,語言之間都是有共性的,縱觀所有的編程語言,Rust在類型設計上并不是那么優雅的,特別是泛型與生命周期結合起來以后,讓程序員對代碼的直觀理解降低到了一個可怕的程度。

既然選擇學習Rust,就要有相關的覺悟,學習曲線陡峭才可以拉開與懶惰者的差距。

學會努力,比努力本身更重要。

 

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2022-12-06 17:30:04

2024-10-18 11:48:00

2024-07-31 09:28:56

2021-09-03 06:46:34

MyBatis緩存后端

2017-11-27 12:24:02

命令行代碼指令

2024-08-12 15:44:06

2021-12-26 18:30:56

嵌入式ARM鏈接

2017-03-07 09:49:18

存儲

2020-10-09 10:45:22

語言代碼數組

2016-12-02 20:43:28

Android

2021-07-29 18:46:52

可視化類型圖形化

2023-10-16 08:55:43

Redisson分布式

2022-07-18 07:58:46

Spring工具工具類

2023-04-10 07:40:36

GraphQLRest通信模式

2016-12-26 09:50:15

2017-09-27 14:57:44

IOS 11Siri蘋果

2023-06-03 00:05:18

TypeScriptJSDoc掃描器

2022-07-19 08:04:04

HTTP應用層協議

2024-11-13 09:22:40

2017-11-06 19:09:45

在線抓娃娃機
點贊
收藏

51CTO技術棧公眾號

欧美成人久久久| 日韩欧美国产激情| 99视频国产精品免费观看| 久久精品国产亚洲AV无码男同 | 亚洲精品91在线| 国产区一区二| 欧美性极品xxxx娇小| 亚洲开发第一视频在线播放| 精品人妻一区二区三区麻豆91| 亚洲精品麻豆| 精品久久国产精品| 香港三日本8a三级少妇三级99| 欧美日韩激情电影| 亚洲欧美一区二区三区极速播放| 精品国产电影| 国产露脸91国语对白| 国产日韩精品视频一区二区三区| 原创国产精品91| 丰满岳乱妇一区二区| 国产91欧美| 午夜激情综合网| 国产日本欧美在线| 国产在线中文字幕| 不卡一区中文字幕| 5g国产欧美日韩视频| 亚洲 国产 日韩 欧美| 亚洲高清自拍| 久久香蕉国产线看观看av| 欧洲美一区二区三区亚洲| 91亚洲无吗| 欧美精选午夜久久久乱码6080| 欧美精品99久久| 乱插在线www| 综合色天天鬼久久鬼色| 日本一区二区久久精品| 婷婷五月综合激情| 风流少妇一区二区| 亚洲bt天天射| 国产精品久久久久久免费免熟 | 日韩综合网站| 亚洲品质视频自拍网| fc2成人免费视频| 亚洲综合网狠久久| 91麻豆精品国产91久久久久久久久 | 国产日韩精品推荐| 午夜久久久久久噜噜噜噜| 蜜桃精品视频在线| 国产精品国产亚洲伊人久久 | 亚洲影视综合| 97香蕉久久超级碰碰高清版| 国产亚洲精品成人| 午夜精品偷拍| 欧美激情精品久久久久久| 久草综合在线视频| 欧美福利网址| 色综合久久悠悠| 成人免费看片98| 亚洲国产一区二区三区a毛片 | 亚洲一区美女| 亚洲搞黄视频| |精品福利一区二区三区| 亚洲欧美99| 888av在线| 亚洲欧美一区二区在线观看| 熟妇熟女乱妇乱女网站| 亚洲资源一区| 香港成人在线视频| 久久久久久久久久久99| 在线视频cao| 在线观看亚洲a| 免费精品99久久国产综合精品应用| 日本免费成人| 欧美电影免费提供在线观看| www.啪啪.com| 精品国产欧美日韩| 最新的欧美黄色| 免费成年人视频在线观看| 国内揄拍国内精品久久| 欧美在线视频一区| 日韩精品在线一区二区三区| 久草中文综合在线| 国产精品v欧美精品v日韩| 日韩资源在线| 一区二区中文字幕在线| avav在线播放| 成人激情综合| 欧美一级精品在线| 中文字幕在线观看的网站| 俺要去色综合狠狠| 欧美国产视频日韩| 精品人妻一区二区三区免费看| 美女视频免费一区| 国产精品theporn88| 浮生影视网在线观看免费| 亚洲美女淫视频| 国产精品视频一区二区三区四区五区| 欧美日韩精品一区二区三区视频| 91精品国产免费久久综合| 精品人妻一区二区免费视频| 欧美亚洲在线日韩| 韩国福利视频一区| 伊人网站在线观看| 99久久精品国产麻豆演员表| 亚洲黄色成人久久久| 韩国日本一区| 欧美揉bbbbb揉bbbbb| 韩国三级视频在线观看| 精品一二三区| 66m—66摸成人免费视频| 在线视频你懂得| 91色九色蝌蚪| 免费的av在线| 久久精品超碰| 亚洲第一色在线| 182在线观看视频| 乱人伦精品视频在线观看| 91精品天堂| 91精彩视频在线播放| 午夜不卡av在线| 超碰在线资源站| 精品国产乱码久久久久久果冻传媒 | 国产真实夫妇交换视频| 麻豆精品新av中文字幕| 欧美xxxx黑人又粗又长精品| 女人黄色免费在线观看| 欧美日免费三级在线| brazzers精品成人一区| 1024成人| 国产精品一区在线播放| av毛片在线免费| 欧美日韩成人综合天天影院 | 亚洲色欲色欲www在线观看| 免费黄色特级片| 日韩在线影视| 97免费中文视频在线观看| 草草视频在线播放| 亚洲激情一二三区| 婷婷激情小说网| 国产精品99一区二区三区| 国产精品一区二区在线| 成人在线免费看| 在线观看日韩电影| 日本一区二区视频在线播放| 蜜桃久久av| 奇米影视首页 狠狠色丁香婷婷久久综合| 91九色在线看| 亚洲激情小视频| 日本va欧美va国产激情| 99re免费视频精品全部| www黄色日本| 欧洲亚洲一区二区三区| 欧美一级电影久久| 日本人妖在线| 色哟哟在线观看一区二区三区| 成人影视免费观看| 麻豆精品网站| 亚洲国产精品一区二区第四页av| 日韩一级二级| 久久精品99久久久久久久久| 国产乱淫a∨片免费观看| 亚洲欧美视频在线观看视频| 深夜做爰性大片蜜桃| 国产精品av久久久久久麻豆网| 国产高清在线精品一区二区三区| tube8在线hd| 亚洲人成在线观看网站高清| 国产91av在线播放| 亚洲特黄一级片| 国产a√精品区二区三区四区| 最新日韩av| 欧美日韩中文国产一区发布| 精品无人乱码一区二区三区 | 老熟妇高潮一区二区三区| 国产精品一区免费在线观看| 人妻夜夜添夜夜无码av| 亚洲第一福利社区| 国产日韩精品在线| 国语对白在线刺激| 亚洲精品一区二区三区婷婷月| 神马久久久久久久| 亚洲视频免费观看| 中文字幕一区二区三区人妻不卡| 久久一区视频| 91精品国产毛片武则天| 巨人精品**| 国产欧美日韩视频| 高清精品在线| www.欧美精品| 无码精品一区二区三区在线| 欧美日韩在线播| 久久久久久久久久一区二区三区 | 女同久久另类69精品国产| 国产成人在线视频网站| 国产亚洲精品网站| 亚洲老妇激情| 欧美连裤袜在线视频| 91精品视频一区二区| 91极品女神在线| 老司机精品视频在线观看6| 亚洲精品一区二区三区99| 嫩草影院一区二区三区| 夜夜嗨av一区二区三区四季av| 精品无人区无码乱码毛片国产| 国产传媒欧美日韩成人| 日本888xxxx| 国产日韩免费| a级片一区二区| 欧洲美女日日| 久久久久久高清| 欧美成年网站| 国产精品一区二区三区在线播放 | 日韩一级精品| 午夜探花在线观看| re久久精品视频| 久久九九视频| 国产精品极品在线观看| 91夜夜揉人人捏人人添红杏| 成人va天堂| 91成人精品网站| 久久大胆人体| 久久不射电影网| 午夜激情在线观看| 亚洲欧洲第一视频| 日本国产在线| 亚洲国产成人精品女人久久久| 国产毛片毛片毛片毛片毛片| 欧美性大战久久| 三级视频在线观看| 五月综合激情婷婷六月色窝| 九九免费精品视频| 亚洲摸摸操操av| 国产性生活大片| 一色屋精品亚洲香蕉网站| 国产精品www爽爽爽| 久久久影院官网| 加勒比精品视频| 成人白浆超碰人人人人| 丰满少妇xbxb毛片日本| 国产精品123区| 亚洲精品一二三四| 国产一区二区在线观看视频| 亚洲精品永久视频| 国精产品一区一区三区mba桃花| 性刺激的欧美三级视频| 日韩电影在线观看网站| 91在线视频观看免费| 日韩精品亚洲一区| 婷婷六月天在线| 美女mm1313爽爽久久久蜜臀| 91欧美视频在线| 精品亚洲国内自在自线福利| 99国产精品久久久久久| 激情综合色综合久久| 手机av在线网| 国产成人在线观看| 国产 xxxx| 久久免费看少妇高潮| 亚洲无人区码一码二码三码的含义 | 欧美日韩国产系列| 一起草av在线| 欧美不卡一区二区三区四区| 蜜桃视频污在线观看| 亚洲娇小xxxx欧美娇小| 欧美视频免费一区二区三区| 一区二区三区四区视频| 麻豆传媒视频在线| 欧美激情亚洲自拍| 伊人网在线播放| 国产精品麻豆va在线播放| 91精品国产色综合久久不卡粉嫩| 不卡视频一区二区三区| 视频福利一区| 亚洲人成影视在线观看| 91精品国产乱码久久久久久久| 欧美黑人在线观看| 噜噜噜在线观看免费视频日韩| 亚洲不卡视频在线| 国产精品一区二区男女羞羞无遮挡| 亚洲高清无码久久| 久久精品人人做人人爽97| 欧美另类videoxo高潮| 亚洲电影第三页| 日韩乱码一区二区三区| 日韩午夜在线播放| 欧美孕妇性xxxⅹ精品hd| 日韩视频第一页| 三妻四妾的电影电视剧在线观看| 国产精品一区二区3区| 成人动态视频| 亚洲不卡1区| 一区二区三区中文| 精品99在线视频| 国产成人综合亚洲网站| 日韩欧美黄色网址| 亚洲一二三级电影| 在线免费av网| 日韩精品视频在线免费观看| 男人的天堂在线视频免费观看| 97高清免费视频| 伊人久久大香伊蕉在人线观看热v 伊人久久大香线蕉综合影院首页 伊人久久大香 | 欧美日韩综合久久| 精品999成人| 极品粉嫩美女露脸啪啪| 久久婷婷国产综合国色天香| 日本老熟俱乐部h0930| 色成人在线视频| 欧美一级做性受免费大片免费| 中文字幕在线看视频国产欧美在线看完整 | 精品高清一区二区三区| 国产精品亚洲lv粉色| 亚洲天堂2020| 国产伦子伦对白在线播放观看| 国产欧美一区二区三区久久人妖 | 一区二区国产日产| 男女精品视频| 午夜av免费看| 亚洲最大的成人av| 一二三四区视频| 亚洲社区在线观看| 波多野结衣视频一区二区| 亚洲aa在线观看| 婷婷中文字幕一区| the porn av| 国产三级三级三级精品8ⅰ区| 国产一级特黄毛片| 日韩欧美电影在线| av免费在线免费观看| 成人av在线天堂| 久久伦理在线| 免费看污黄网站| 国产欧美va欧美不卡在线| 久久国产视频播放| 亚洲加勒比久久88色综合 | 国产suv精品一区二区三区88区| 白嫩白嫩国产精品| 国产一区二区三区在线免费| 精品一区二区免费在线观看| 国产精品无码无卡无需播放器| 色哟哟欧美精品| 精品推荐蜜桃传媒| 日韩av片免费在线观看| 九九久久成人| 99蜜桃臀久久久欧美精品网站| 91丝袜美腿高跟国产极品老师| 国产午夜精品无码| 亚洲成人在线网| 午夜裸体女人视频网站在线观看| 精品福利影视| 久久精品官网| 日韩女同一区二区三区| 欧美亚洲国产一区二区三区| 国产在线黄色| 国产一区欧美二区三区| 91精品推荐| 高清中文字幕mv的电影| 精品久久久久久亚洲国产300| 天天干天天摸天天操| 国产97在线视频| 第一社区sis001原创亚洲| 色婷婷成人在线| 亚洲精品午夜久久久| 亚洲免费成人网| 91av在线国产| 精品国产一区二区三区四区| 黄大色黄女片18第一次| 亚洲精品国产第一综合99久久| www.香蕉视频| 欧美在线视频一区二区| 日韩精品免费一区二区三区| 一级做a爱视频| 天天操天天色综合| 久青草国产在线| 成人欧美一区二区三区黑人孕妇| 欧美激情综合| 一区二区三区免费在线观看视频 | 欧美影院三区| 中文字幕亚洲日本| 色婷婷久久久综合中文字幕| 欧美日本一道| 国产在线欧美日韩| 麻豆免费精品视频| 国产性生活网站| 伊人伊成久久人综合网小说| 国产精品久久久久久久久久辛辛| 日本精品久久久久久久久久| 久久久精品国产免大香伊| 国产精品视频第一页| 国内精品免费午夜毛片| 成人免费看片39| 88av在线播放| 7777精品伊人久久久大香线蕉经典版下载 | 国产一二区在线观看| 精品中文字幕人| 国内国产精品久久| 成人免费毛片男人用品| 欧美成年人视频| 欧美限制电影| 亚洲一区二区三区无码久久| 欧美日韩免费观看一区二区三区| 国产高潮在线|