日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第一百一十七期:爱上 Go 语言的10个理由

發(fā)布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第一百一十七期:爱上 Go 语言的10个理由 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這個月 Go 語言就將迎來它的10歲生日了,于是我們特地列出了10條讓你可以開心使用 Go 語言的理由。

作者:4bytes

這個月 Go 語言就將迎來它的10歲生日了,于是我們特地列出了10條讓你可以開心使用 Go 語言的理由。

Map 集合/映射默認使用0值

在 Go 中使用映射時,即使你尚未為特定的鍵插入任何值,也可以查詢該鍵,并且它所對應的值為0還不是nil,除非存儲的是指針。

因此如果你有這樣一個映射 m:=map[string]int然后你想得到 m["hello"],返回的結果將是 0,即使該位置并沒有值。

這允許我們寫代碼時不需要再檢查該鍵是否存在,從而使代碼更加整潔。想象如果我們想要保存某個字符串中一個字符出現(xiàn)的頻率,我們只需要這樣做:

  • func?count(input?string)?(map[string]int)?{?m?:=?map[string]int{}for?_,s?:=?range?input?{?m[string(s)]++?//?這一步永遠都會是安全的}return?m}?
  • 上面的代碼中,我們無需在遞增之前事先判斷該鍵是否已經(jīng)有值。

    不變值

    默認情況下,當向一個方法或者函數(shù)傳遞值時,你無法對它進行更改。當你確實需要更改這個值時,你需要向這個值傳遞一個指針。它不像 Rust 那么嚴格,后者在初始化變量時就需要標記它是可變變量。盡管如此,這仍然意味著如果你調用了一個不接收指針的函數(shù),你可以確定它不會和你的結構所混淆。

    值默認不會是 nil

    不管在哪種語言里,我都不是很喜歡 Null,因此我很高興在 Go 里,默認情況下你的結構或者基本類型絕對不會指向 Nil,這就消除了錯誤檢查——當然有一個例外,就是在使用指針的情況下,因此在此情況中我們應該有錯誤處理機制。就算是 Tony Hoare 這個發(fā)明了 Null的人也曾經(jīng)將它形容為一個“價值百萬美元的錯誤”。

  • type?myStruct?struct{}func?magic(m?myStruct)?{//?無指針,此情況下不會出現(xiàn)?Nil}func?magicp(m?*myStruct)?{//?可能出現(xiàn)空指針!}?
  • Nil 切片 == 空切片

    是的,這一點再次和 Nil 相關,因為我真的很不喜歡 Nil 值。所以另一個讓我愛上 Go 語言的原因就是如果你有一個 nil 切片,它和一個空切片其實沒什么區(qū)別,因此你就不需要分開判斷一個切片是否為 nil然后再判斷它是否為 empty。剛好這也是我喜歡 Common Lisp 的理由之一,當時我很意外 Go 語言也能有這個功能。

  • func?main()?{var?s?[]intif?len(s)?==?0{?fmt.Println("hello")}}?
  • 輕松發(fā)布相關庫

    在知道 Go 語言中發(fā)布庫有多么容易之前,我好像從來就沒意識到這件事的重要性。我自己寫了一些 Go 庫,而我唯一需要做的事就是把它們 push 到 GitHub 上,之后別人可以直接在項目中引用這個項目 gogetgithub.com/4byte/{lib}。現(xiàn)在你也可以把它們添加成 go模塊,但這和往 GitHub 上發(fā)布庫一樣簡單。

    Go 擁有強烈的語法偏好

    強制代碼格式這一點有人喜歡就有人討厭,但 Go 確實是一門有著強烈語法偏好的語言。個人而言我很喜歡它的風格,因為在代碼審查上它移除了很多沒用的部分。借 Rob Pike 的原話:

    Gofmt 不會是某個人的最愛,但它也是每個人的最愛。

    多范式編程

    你所看到的很多 Go 代碼都是偏向面向對象型的,但它不一定非得是面向對象。實際上,盡管 Go 在一些地方缺少某些語法和功能,但 Go 其實是可以成為一門不錯的函數(shù)式編程語言的。舉個例子,Go 語言可以滿足柯里化(Function Currying)或者延續(xù)傳遞 CPS 風格的編程。

    雖然你不一定要讓整個代碼庫都呈現(xiàn)函數(shù)式編程的風格,但在項目中的某些部分可以用到它。

    Go 社區(qū)

    不管是在 IRC 上的 freenode/go-nuts還是在 gophers.slack.com上你都能找到很多真正關心著這門語言的開發(fā)者。并且這些社區(qū)對剛剛轉向 Go 的新人都很友好。更拉好感的是,Go 社區(qū)在多樣性和包容性上做出了很大努力,比如 Git 上的 GoBridge 項目和"Women Who Go"項目等。

    處處運行

    Go 基本上在哪里都能運行,并且只要能提供正確的 GOOS,GOARCH,CGO_ENABLED 或 GOARM 標記等,你可以在任何平臺上構建它。這使 Go 也得以在多種架構上運行,比如 amd64,386 和 arm 等。

    除開這些,Go 也是第一門擁有內置 WebAssembly 的語言。除了這些已經(jīng)能支持的平臺外,還有類似 TinyGo 這樣的項目在推進 Go 更強大的跨平臺型和便攜性。

    Go 被特意設計為一門簡單的語言

    Go 從誕生之初就以簡單性為目標,到目前位置,它的簡單性保持得會很成功。Go 的語言規(guī)范是你從頭到尾看一遍(花不了多少時間)就能完全看懂的東西,這也意味著有些在別的語言中能夠找到的特性在 Go 里它就是不存在的,其中一個爭議比較大的就是 Go 缺少泛型。

    我個人非常支持 Go 語言的這種簡單性,它的好處之一就是讓開發(fā)者可以迅速掌握該語言,而在一個團隊中也幾乎不會出現(xiàn)這種你的同事使用了你從未見過的程序結構的可能。

    閱讀目錄(置頂)(長期更新計算機領域知識)

    閱讀目錄(置頂)(長期更新計算機領域知識)

    閱讀目錄(置頂)(長期科技領域知識)

    歌謠帶你看java面試題

    總結

    以上是生活随笔為你收集整理的第一百一十七期:爱上 Go 语言的10个理由的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 女人的洗澡毛片毛多 | 亚洲国产成人一区二区 | 国产又粗又深又猛又爽又在线观看 | 亚洲色欧美另类 | 国产调教在线 | 天堂网中文 | 美女成人在线 | 中文字幕人妻互换av久久 | 国产日韩欧美另类 | a级在线看 | 在线观看黄色av网站 | 亚洲一区二区三区四区五区六区 | 久久性感美女视频 | 亚洲欧美一区二区在线观看 | 久久久久久久久久久久久久国产 | 草逼视频免费看 | av成人在线网站 | 成人交配视频 | 国产黄a| 亚欧色视频 | 久久久久久久久久99精品 | 国产精品成人久久久 | 动漫av一区 | 欧美色炮| 国产在线h| 成人免费直播 | 国产r级在线 | 日韩成人三级 | 在线观看免费福利 | 日韩乱码人妻无码中文字幕久久 | 丰满大爆乳波霸奶 | 日韩一卡二卡三卡 | 欧美熟妇精品黑人巨大一二三区 | 波多野结衣一区 | 娇小萝被两个黑人用半米长 | 免费欧美黄色片 | 在线观看av不卡 | 免费看黄色小视频 | 99热在线观看免费精品 | 亚洲欧美激情小说另类 | 欧美精品第一页 | 麻豆精品在线视频 | 久久久久久久久久久网 | 人人叉人人| 91精选| 久久精久久| 免费一级a毛片 | av高清一区| 国模私拍一区二区 | 日韩 欧美 综合 | 欧美日在线观看 | 91看黄 | 欧美性色网站 | 性按摩玩人妻hd中文字幕 | 亚洲精品久久视频 | 亚洲图片在线 | 永久免费未网 | 国内成人在线 | 古装做爰无遮挡三级视频 | 多毛的亚洲人毛茸茸 | 久久久久久av无码免费网站下载 | 中文字幕人妻一区二区三区在线视频 | 日韩精选| 三级做爰在线观看视频 | 伊人焦久影院 | 日韩精品一区二区三区久久 | 亚洲 欧美 日韩 综合 | 国产精品二区一区二区aⅴ 一卡二卡三卡在线观看 | 特级西西444www大胆免费看 | 欧美午夜一区二区 | 国产高潮av | 成人av图片 | 福利在线一区 | 国产女主播喷水视频在线观看 | 深爱激情综合 | 国产黄色小视频在线观看 | 综合xx网| 日欧视频 | 污视频免费在线观看 | 日韩城人网站 | 欧美 日韩 国产 成人 在线观看 | 国产精品国产三级国产普通话蜜臀 | 色性网站 | 婷婷六月色| 99色在线 | 欧美另类自拍 | 四虎精品一区二区三区 | 久久97精品 | 国产精品久久不卡 | 91精品视频网站 | 天天舔天天爱 | 1024手机看片国产 | 欧美成人午夜77777 | 欧美色图一区二区三区 | 免费观看黄色一级片 | 91麻豆成人精品国产免费网站 | 国产精品一区二区久久 | 鲁一鲁av | 全球av在线|