前言
初識go語言不到半年,我是一次偶然的機會認識了golang這門語言,看到他簡潔的語法風格和強大的語言特性,瞬間有了學習他的興趣
最近學習 Go,但是苦于沒有項目練手,于是便逼迫自己:如果想到什么有趣的東西,看能不能用 Go 實現一遍,于是便有了這篇流水文。
實現過程
歸并排序中的 merge 函數,相信每個人都很熟悉,網上隨便搜搜都有一大堆文章,這里不再贅述細節。一開始,我用的是常規套路,不過覺得沒啥意思,無非是「換湯不換藥,感覺還是在拿自己熟悉的語言寫東西」。
聯想到 Go 的 channel 似乎能在某種程度上滿足我的要求,再加上 Goroutine 這種東西,便想:是不是也能利用利用這兩個語言特性。
channel 這個數據結構,在 Go 中有比較豐富的含義,但我基本上把它當隊列使用。Goroutine 也一樣,我基本把它等同于「用戶態線程」(兩者都很牛逼,不過作為應用層的開發者,有時候并不想深究太多,一切都往簡單方向理解)。
由于我只是練手,所以我想到的 API 長這樣:
Merge(ch2, ch3): outChan
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享名稱:Go語言channel如何實現歸并排序中的merge函數詳解-創新互聯
鏈接地址:http://www.2m8n56k.cn/article30/dodjso.html
成都網站建設公司_創新互聯,為您提供建站公司、網站改版、動態網站、品牌網站設計、App設計、搜索引擎優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯