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

當(dāng)前位置:首頁 > 科技  > 軟件

使用 Rust 后,我寫 Go 的方法都變了!

來源: 責(zé)編: 時(shí)間:2024-01-18 17:33:01 298觀看
導(dǎo)讀大家好,我是漁夫。今天跟大家分享,當(dāng)使用 Rust 一段時(shí)間后回來寫 Go 的有哪些變化。自己本身大部分工作上都是主要寫 Go 的,因?yàn)轫?xiàng)目原因,以及我自己本身對(duì) Rust 的熱愛,業(yè)余時(shí)間也喜歡寫各種小工具等等,所以,也越來越習(xí)慣 R

大家好,我是漁夫。NnX28資訊網(wǎng)——每日最新資訊28at.com

今天跟大家分享,當(dāng)使用 Rust 一段時(shí)間后回來寫 Go 的有哪些變化。自己本身大部分工作上都是主要寫 Go 的,因?yàn)轫?xiàng)目原因,以及我自己本身對(duì) Rust 的熱愛,業(yè)余時(shí)間也喜歡寫各種小工具等等,所以,也越來越習(xí)慣 Rust 的寫法。NnX28資訊網(wǎng)——每日最新資訊28at.com

NnX28資訊網(wǎng)——每日最新資訊28at.com

錯(cuò)誤處理

以為我擺脫了 if err != nil { },在 Rust 中,很有可能會(huì)寫出類似 let result = some_function(),然后使用 match 或 ? 操作符來處理 Result。習(xí)慣使用 Rust 的寫法使用 ?, 模式匹配來處理錯(cuò)誤情況,用起來還是有點(diǎn)舒服滴。NnX28資訊網(wǎng)——每日最新資訊28at.com

let result = some_function()?;

而 Go 呢,使用多返回值來處理錯(cuò)誤,通常是返回一個(gè)結(jié)果和一個(gè)錯(cuò)誤。NnX28資訊網(wǎng)——每日最新資訊28at.com

result, err := someFunction()if err != nil {    // handle error}

Rust 錯(cuò)誤處理還是吸引很多開發(fā)者的,很多其他語言開發(fā)者,抱怨要是錯(cuò)誤處理像 Rust 那種多爽,Rust 的錯(cuò)誤處理機(jī)制也吸收了其他編程語言中錯(cuò)誤處理的優(yōu)點(diǎn),并結(jié)合了 Rust 獨(dú)特的語言特性,如強(qiáng)類型系統(tǒng)、模式匹配和所有權(quán)模型,形成了一套高效、安全且易于使用的錯(cuò)誤處理機(jī)制。NnX28資訊網(wǎng)——每日最新資訊28at.com

可以簡(jiǎn)單了解 Rust 錯(cuò)誤處理與其他語言的不同:NnX28資訊網(wǎng)——每日最新資訊28at.com

  • 模式匹配與強(qiáng)類型系統(tǒng)(類似于 Haskell)
  • 無異常設(shè)計(jì)(類似于 Go)
  • 顯式錯(cuò)誤傳播(類似于 C++的 RAII)
  • 可選值的處理(類似于 Swift 和 Kotlin),Rust 的 Option 類型類似于 Swift 的可選值(Optional)和 Kotlin 的可空類型(Nullable Type),用于處理可能為空的情況,這使得處理這類值更加安全和直觀。

容易把 … := 打成 let … =

有時(shí)候不自覺地將 Rust 的編程習(xí)慣和風(fēng)格帶入 Go 的編程中,使用 let 關(guān)鍵字代替 := , 在 Rust 中,變量通常是使用 let 關(guān)鍵字來聲明的。如:let x = 5。而在 Go 中,變量聲明和初始化通常使用 := 符號(hào),也很容易把錯(cuò)誤地在 Go 中使用如 let x := 5,而正確的方式是 x := 5。NnX28資訊網(wǎng)——每日最新資訊28at.com

容易寫循環(huán)時(shí)把 := range … 打成 in …

Rust 程序員在編寫 Go 代碼時(shí),也很容易在循環(huán)結(jié)構(gòu)中不自覺地將 Go 的 := range 語法寫成 Rust 風(fēng)格的 in。NnX28資訊網(wǎng)——每日最新資訊28at.com

Rust :NnX28資訊網(wǎng)——每日最新資訊28at.com

let numbers = vec![1, 2, 3, 4, 5];for num in numbers {    println!("{}", num);}

Go :NnX28資訊網(wǎng)——每日最新資訊28at.com

numbers := []int{1, 2, 3, 4, 5}for index, value := range numbers {    fmt.Println(index, value)}

函數(shù)定義關(guān)鍵字,容易把 func 寫成 fn

習(xí)慣了 Rust 后,切到寫 Go 代碼時(shí),可能會(huì)錯(cuò)誤地使用 fn 來定義函數(shù),也會(huì)習(xí)慣性的寫錯(cuò)。NnX28資訊網(wǎng)——每日最新資訊28at.com

Rust 的寫法:NnX28資訊網(wǎng)——每日最新資訊28at.com

fn add(a: i32, b: i32) -> i32 {    a + b}

Go 的寫法:NnX28資訊網(wǎng)——每日最新資訊28at.com

func add(a int, b int) int {    return a + b}

函數(shù)返回類型前,習(xí)慣加 ->

在 Rust 中,函數(shù)定義時(shí),返回類型是通過 -> 符號(hào)指定的,緊跟在參數(shù)列表后面。NnX28資訊網(wǎng)——每日最新資訊28at.com

總是忘記 return

習(xí)慣性在函數(shù)中漏寫 return 語句,在 Rust 中,函數(shù)的最后一個(gè)表達(dá)式會(huì)自動(dòng)作為函數(shù)的返回值,除非它以分號(hào)結(jié)尾。因此,在 Rust 中編寫函數(shù)時(shí),經(jīng)常省略 return 關(guān)鍵字。NnX28資訊網(wǎng)——每日最新資訊28at.com

Rust 如下例子:NnX28資訊網(wǎng)——每日最新資訊28at.com

fn add(a: i32, b: i32) -> i32 {    a + b  // 這個(gè)自動(dòng)返回 a + b 的結(jié)果}

Go 例子:NnX28資訊網(wǎng)——每日最新資訊28at.com

必須顯式使用 returnNnX28資訊網(wǎng)——每日最新資訊28at.com

func add(a int, b int) int {    return a + b}

習(xí)慣使用劃線命名

在 Rust 開發(fā)中,標(biāo)準(zhǔn)的變量和函數(shù)命名約定是使用下劃線分隔的小寫字母的,即所謂的 snake_case。NnX28資訊網(wǎng)——每日最新資訊28at.com

Rust:NnX28資訊網(wǎng)——每日最新資訊28at.com

fn demo_function() {    let local_variable = 100;}

Go:NnX28資訊網(wǎng)——每日最新資訊28at.com

func DemoFunction() {    localVariable := 100}

注意,Go 的首字母大小寫是有不同含義的。NnX28資訊網(wǎng)——每日最新資訊28at.com

好了,以上主要是分享當(dāng)寫 Rust 后,切到其他語言時(shí),通常習(xí)慣性使用 Rust 的寫法風(fēng)格。當(dāng)然有些沒有想到的,以上的習(xí)慣性,那種是你習(xí)慣性指數(shù)比較高的呢。學(xué)習(xí) Rust 建議初學(xué)者要適應(yīng)編譯告警一堆,還有跟編輯器做斗爭(zhēng)。NnX28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-64498-0.html使用 Rust 后,我寫 Go 的方法都變了!

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: Galaxy AI 賦能影像創(chuàng)作 三星 Galaxy S24 系列解鎖進(jìn)階體驗(yàn)

下一篇: 2024 年 Vue.js 會(huì)發(fā)生什么?

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 盧偉冰長(zhǎng)文解析K60至尊版 對(duì)Redmi有著里程碑式的意義

    在今天的Redmi后性能時(shí)代戰(zhàn)略發(fā)布會(huì)結(jié)束之后,Redmi總經(jīng)理盧偉冰又帶來了一篇長(zhǎng)文,詳解了為什么 Redmi 要開啟后性能時(shí)代?為什么選擇和 MediaTek、Pixelworks 深度合作?以及后性
  • K60至尊版剛預(yù)熱 一加Ace2 Pro正面硬剛

    Redmi這邊剛?cè)缁鹑巛钡男麄髁薑60 Ultra的各種技術(shù)和硬件配置,作為競(jìng)品的一加也坐不住了。一加中國區(qū)總裁李杰發(fā)布了兩條微博,表示在自家的一加Ace2上早就已經(jīng)采用了和PixelWo
  • Redmi Pad評(píng)測(cè):紅米充滿野心的一次嘗試

    從Note系列到K系列,從藍(lán)牙耳機(jī)到筆記本電腦,紅米不知不覺之間也已經(jīng)形成了自己頗有競(jìng)爭(zhēng)力的產(chǎn)品體系,在中端和次旗艦市場(chǎng)上甚至要比小米新機(jī)的表現(xiàn)來得更好,正所謂“大丈夫生居
  • 《英雄聯(lián)盟》夏季賽總決賽今日開打!JDG對(duì)陣LNG首發(fā)名單來了 Knight:準(zhǔn)備三連冠

    8月5日消息,今日17:00,《英雄聯(lián)盟》2023LPL夏季賽總決賽將正式開打,由JDG對(duì)陣LNG。對(duì)兩支隊(duì)伍來說,這場(chǎng)比賽不僅要爭(zhēng)奪夏季賽冠軍,更要決定誰才是LPL賽區(qū)一
  • 如何使用JavaScript創(chuàng)建一只圖像放大鏡?

    譯者 | 布加迪審校 | 重樓如果您曾經(jīng)瀏覽過購物網(wǎng)站,可能遇到過圖像放大功能。它可以讓您放大圖像的特定區(qū)域,以便瀏覽。結(jié)合這個(gè)小小的重要功能可以大大改善您網(wǎng)站的用戶體驗(yàn)
  • JVM優(yōu)化:實(shí)戰(zhàn)OutOfMemoryError異常

    一、Java堆溢出堆內(nèi)存中主要存放對(duì)象、數(shù)組等,只要不斷地創(chuàng)建這些對(duì)象,并且保證 GC Roots 到對(duì)象之間有可達(dá)路徑來避免垃 圾收集回收機(jī)制清除這些對(duì)象,當(dāng)這些對(duì)象所占空間超過
  • 2023年,我眼中的字節(jié)跳動(dòng)

    此時(shí)此刻(2023年7月),字節(jié)跳動(dòng)從未上市,也從未公布過任何官方的上市計(jì)劃;但是這并不妨礙它成為中國最受關(guān)注的互聯(lián)網(wǎng)公司之一。從2016-17年的抖音強(qiáng)勢(shì)崛起,到2018年的“頭騰
  • 華為發(fā)布HarmonyOS 4:更好玩、更流暢、更安全

    在8月4日的華為開發(fā)者大會(huì)2023(HDC.Together)大會(huì)上,HarmonyOS 4正式發(fā)布。自2019年發(fā)布以來,HarmonyOS一直以用戶為中心,經(jīng)歷四年多的發(fā)展HarmonyOS已
  • “買真退假” 這種“羊毛”不能薅

    □ 法治日?qǐng)?bào) 記者 王春   □ 本報(bào)通訊員 胡佳麗  2020年初,還在上大學(xué)的小東加入了一個(gè)大學(xué)生兼職QQ群。群主“七王”在群里介紹一些刷單賺
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
麻豆九一精品爱看视频在线观看免费| 一本不卡影院| 国产日韩三区| 国产一区二区三区的电影| 红杏aⅴ成人免费视频| 亚洲高清视频一区| 最新国产乱人伦偷精品免费网站 | 久久视频一区二区| 国产精品久久久久三级| 香蕉乱码成人久久天堂爱免费 | 国产精品国产三级国产普通话蜜臀 | 亚洲一区二区三区高清| 午夜亚洲性色视频| 开心色5月久久精品| 欧美日韩亚洲一区二| 国产真实乱子伦精品视频| 亚洲精品男同| 欧美一区二区三区在线观看视频| 免费日韩av电影| 国产精品日本欧美一区二区三区| 精品av久久707| 亚洲午夜视频在线观看| 久久久综合网| 国产精品video| 在线看无码的免费网站| 影音先锋中文字幕一区| 亚洲国产婷婷| 免费日韩精品中文字幕视频在线| 亚洲美女av电影| 国产精品久久久久久久久久免费看 | 亚洲图中文字幕| 欧美一区二区精美| 欧美电影在线播放| 国产网站欧美日韩免费精品在线观看| 亚洲欧洲免费视频| 久久黄色小说| 国产精品99一区二区| 亚洲成在线观看| 欧美一区二区免费观在线| 欧美激情综合在线| 狠狠色2019综合网| 亚洲免费网址| 欧美精品v日韩精品v韩国精品v| 国产欧美综合在线| 一区二区三区四区蜜桃| 久久视频在线看| 国产精品视频999| 久久久久国产成人精品亚洲午夜| 亚洲福利视频网站| 99re这里只有精品6| 久久免费高清视频| 国产欧美一区二区三区另类精品| 在线一区二区视频| 欧美经典一区二区三区| 亚洲第一天堂无码专区| 久久精品国产欧美亚洲人人爽| 国产精品白丝av嫩草影院 | 亚洲人精品午夜| 久热精品视频在线| 国产午夜精品全部视频在线播放 | 一个色综合av| 欧美精品国产精品日韩精品| 一区免费观看| 久久久久成人网| 国产日韩欧美电影在线观看| 亚洲视频在线观看免费| 欧美人与禽猛交乱配| 亚洲高清二区| 玖玖综合伊人| 亚洲成色www8888| 久久在线91| 精品福利电影| 久久久久高清| 狠狠色狠狠色综合日日五| 欧美在线视频免费| 国产一区二区三区日韩| 久久成人羞羞网站| 国产一区二区三区在线观看精品 | 欧美激情一区在线观看| 亚洲国产99| 六月丁香综合| 亚洲国产精品电影在线观看| 久热精品视频在线观看| 亚洲国产精品99久久久久久久久| 久久综合国产精品| 亚洲国产精品v| 欧美二区乱c少妇| 亚洲理伦在线| 欧美视频一区二区在线观看| 亚洲校园激情| 国产精品自拍网站| 午夜精品久久久久久久白皮肤| 中日韩美女免费视频网址在线观看 | 欧美日韩精品在线| 久久免费精品视频| 欧美日韩日韩| 亚洲视频你懂的| 欧美午夜一区二区福利视频| 亚洲视频国产视频| 国产精品久久二区二区| 亚洲免费在线视频| 国产精品一区二区欧美| 午夜久久久久久| 国产一区二区三区观看| 久久综合九色九九| 亚洲精品中文字幕有码专区| 欧美日韩三级视频| 亚洲欧美国产精品va在线观看| 国产精品自在线| 久久视频精品在线| 日韩视频一区二区在线观看 | 久久精品一区| 亚洲中无吗在线| 亚洲电影中文字幕| 欧美日韩精品高清| 在线成人av| 国产精品一区二区欧美| 91久久国产自产拍夜夜嗨| 在线观看免费视频综合| 亚洲承认在线| 日韩视频免费| 亚洲一区二区在| 久久漫画官网| 欧美精品乱码久久久久久按摩| 免费成人av在线看| 欧美日韩视频在线一区二区观看视频 | 欧美在线短视频| 久久日韩精品| 欧美特黄一区| 亚洲福利在线视频| 亚洲欧美国产视频| 久久亚洲一区二区| 欧美日韩免费一区| 黄色一区三区| 一区二区久久| 裸体丰满少妇做受久久99精品| 欧美日韩成人综合天天影院| 国产精品一二| 日韩视频精品在线观看| 久久99在线观看| 国产精品久久久久久久久久免费| 一区免费观看视频| 欧美一级视频精品观看| 欧美日韩久久久久久| 在线免费观看日韩欧美| 午夜视频一区二区| 欧美三级电影一区| 亚洲高清免费视频| 欧美综合国产| 国产伦理一区| 久久国产毛片| 欧美成人免费播放| 久久久国产一区二区| 在线观看亚洲视频| 欧美午夜精品久久久久久浪潮 | 国产精品久久一区二区三区| 久久久久欧美精品| 亚洲无玛一区| 亚洲激情六月丁香| 国产伦精品免费视频 | 影音先锋中文字幕一区| 国产精品自拍视频| 欧美日韩综合| 欧美福利电影在线观看| 久久久国产精品一区| 亚洲欧美日韩国产成人精品影院| 亚洲日韩欧美视频一区| 好看的日韩视频| 国产免费成人av| 欧美日韩综合在线| 欧美好骚综合网| 久久综合国产精品| 国产精品亚洲综合| 99av国产精品欲麻豆| 欧美成人日韩| 久久裸体艺术| 欧美亚洲一区二区在线| 99在线|亚洲一区二区| 91久久嫩草影院一区二区| 精品电影一区| 国产亚洲欧美日韩日本| 国产精品五区| 国产精品久久一区二区三区| 欧美日韩成人在线观看| 欧美成人伊人久久综合网| 久久综合网hezyo| 久久夜色精品国产| 久久国产直播| 久久精品一区| 久久精品国产精品亚洲精品| 午夜免费在线观看精品视频| 亚洲一级黄色av| 亚洲视频大全| 一区二区三区|亚洲午夜| 99re亚洲国产精品| av成人免费| 夜夜嗨av一区二区三区四季av | 欧美日韩国产成人| 欧美黄色视屏| 欧美极品一区| 欧美日韩一二三四五区| 欧美日韩在线视频一区二区| 欧美日韩一区二区在线| 欧美午夜在线|